본문으로 바로가기

[Webhacking.kr]39번

category Wargame/webhacking.kr 2017. 7. 17. 01:49


39번 문제를 클릭했을 때 뜨는 화면이다.


이것만 봐서는 알 수 없으니 소스를 열어보니 index.php를 힌트로 주었다.




index.php의 모습이다. 변수명 id를 post형식으로 전달받아 필터링을 거친다


우선 역슬래시(\)와 싱글쿼터(')를 str_replace로 치환한것을 볼 수 있다.


그다음에는 받은 문자열에서 처음부터 15자까지만 substr로 허용한다.


그다음에 쿼리를 전송하는데 이 코드에서 조건을 걸때 이상한 부분을 볼 수 있다. 쿼터가 하나 부족한것이다


아마 어드민의 계정을 입력해야겠지만 싱글쿼터가 없기 때문에 에러가 뜰것이다.


실제로도 에러가 뜬다. 



Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/hosting_users/webhacking/www/challenge/bonus/bonus-10/index.php on line 17



짧은 시간이지만 그동안 필터링 우회기법이라는 삽질경험을 통해(물론 이번에도..;;) 웹문제는 대부분 일반적인 우회기법이 먹히지 않는다는것을 알아냈다.


그렇다면 우선 의문을 가져야 한다.


왜 15자까지로 잘랐을까?


굳이...


이때 시선을 살짝 위로 올려보면 싱글쿼터 하나가 싱글쿼터 두개로 필터링되는것을 볼 수 있다.


아...! 유남생?





성공이다.


'Wargame > webhacking.kr' 카테고리의 다른 글

[Webhacking.kr]38번  (0) 2017.07.19
[Webhacking.kr]14번  (0) 2017.07.18
[Webhacking.krr]17번  (2) 2017.07.14
[Webhacking.kr]16번  (0) 2017.07.14
[Webhacking.kr]1번  (0) 2017.07.14