728x90

 

소스 코드를 보면 pw의 길이가 6보다 크면 안되고 #와 --등 모든 주석을 필터링하고 있다. 그런데 보면 ;%00은 필터링 하지 않는것으로 보인다. 이제 쿼리를 짜보면 ?pw=')=0;%00으로 써주면 될것같다. %23이 필터링 되니 ;%00으로 바꿔서 써준것이다. 한번 넣어보자.

 

 

역시 풀렸다. ;%00을 아는지 묻는 문제인것같다.

728x90

 

이번 문제는 바로 앞 16번 문제의 ereg를 preg_match로 바꿔준 문제이다. 이렇게 되면 \를 이용하면 된다.  \를 이용하여 '를 문자열 취급해주는것이다. 이 문제에서는 ?id=\를 쳐보자.

 

 

이렇게 나오게 된다. 여기서 '\' and pw='가 한개의 문자열로 취급이 된다. 그래서 그걸 이용해서 쿼리를 짜보면 ?id=\&pw= or 1=1%23라고 볼수있다.

 

 

그러면 이렇게 풀리게 된다.

 

728x90

 

싱글쿼터를 ereg로 필터링 하고 있다. 아까도 말했지만 ereg는 취약점이 있어서 현재 쓰이지 않고 있다. 그 취약점중 하나가 앞에 %00이 있으면 탐색을 종료한다는 것이다. 그래서 그냥 ?pw=%00' or '1'='1로 하면 될것이다.

 

 

역시 풀렸다. 이건 ereg의 취약점을 알고있는지 물어보는 문제같다.

+ Recent posts