한 마디 더 하 자 면 이 물건 은 코드 를 볼 때 마음대로 볼 수 있 는 곳 일 뿐 다른 곳 은 아직 많 습 니 다.그 때 는 테스트 도 하지 않 았 는데 저 는 적어 두 었 습 니 다.그 중에서 무엇이 잘못 되 었 는 지 이해 해 주시 기 바 랍 니 다.하하~얼마 전 인터넷 에서 유 행 했 던 SQL 주입 은 프 록 시 IP 를 조작 해 공격 하 는 HTTPX_FORWARDED_FOR 는 한동안 사람들의 주목 을 받 았 고,오늘 은 소식 4.0 을 보고 있다. 이런 주입 점 을 발 견 했 습 니 다.우 스 운 것 은 프로그래머 가 HTTP 를 고려 한 것 입 니 다.X_FORWARDED_FOR 의 필 터 는 검색 어 를 가 져 올 때 필 터 된 변 수 를 가 져 오 는 것 을 잊 은 것 처럼 필터 되 지 않 은 VisitIP 를 직접 가 져 왔 습 니 다.다음은 분석 코드:Stat/Index.asp 파일 의 18 번 째 줄,VisitIP = request.ServerVariables("HTTP_X_FORWARDED_FOR")직접 HTTPX_FORWARDED_FOR 에서 VisitIP 변 수 를 파일 61 줄 에 할당 합 니 다.EnAddress = EnAddr(EnIP(VisitIP)는 여기 서 2 개의 함수 로 VisitIP 를 걸 러 냈 지만 마지막 할당 을 보면 EnAddress 라 는 변 수 를 주 었 고 아래 62 줄 의 조 회 는 필터 가 없 는 VisitIP 변 수 를 직접 가 져 왔 기 때문에 여기 서 SQL 주입 을 할 수 있 습 니 다.Set RsCouObj = Conn.Execute("Select ID from FS_SS_Stat where IP='&VisitIP&')이 파일 에서 VisitIP 라 는 변 수 를 조회 하 는 곳 이 여러 군데 있 습 니 다.그 보완 방법 도 간단 합 니 다.바로 EnAddress 입 니 다. = EnAddr(EnIP(VisitIP)를 VisitIP=EnAddr(EnIP(VisitIP)로 변경 합 니 다.패 킷 을 통 해 패 킷 에 HTTP 를 추가 할 수 있 습 니 다.X_FORWARDED_FOR:123'+and+user>0-이렇게 주입 합 니 다.access 버 전에 서 는 HTTPX_FORWARDED_FOR:123'+and+1=1+and+1'='1'이라는 형식 으로 유 니 온 으로 폭 문자 내용 을 주입 할 수 있 습 니 다.OK,구체 적 으로 네가 실현 할 때 까지 기 다 려 라,많이 손 을 써 라.BY WhyTt