-
[Webhacking.kr - 문제풀이 26번]Webhacking.kr 문제 풀이 2021. 4. 12. 20:42728x90
26번 문제의 소스코드를 확인해보면 다음과 같다.
get 형식으로 받은 id값이 admin이면 풀리는 것을 확인할 수 있지만 php 코드의 첫줄에 id값이 preg_match() 함수를 통해 필터링 되고 다음 줄에 urldecode가 되기때문에 조건에 맞지 않을 것을 예측할 수 있다.
따라서, URL 인코딩표를 참고하여 admin을 바꾼다면 "%61%64%6D%69%6E"가 된다.
그러나, 이를 URL의 id값으로 입력하여도 "no!"라는 문자열이 출력되는데,
이는 웹서버와 브라우저 사이에서 데이터 교환 시 폼에서 입력받은 데이터를 자동으로 인코딩한 값으로 보낸 후 php는 자동으로 디코딩하기 때문이다. (urldecode()까지 디코딩 횟수 총 2번) 그러므로 한번 더 인코딩을 한 값을 입력해주어야 한다.
최종적으로 id=%2561%2564%256D%2569%256E 를 입력한다면 문제를 해결할 수 있다.
728x90'Webhacking.kr 문제 풀이' 카테고리의 다른 글
[Webhacking.kr - 문제풀이 38번] (0) 2021.04.13 [Webhacking.kr - 문제풀이 18번] (0) 2021.04.12 [Webhacking.kr - 문제풀이 14번] (0) 2021.04.12 [Webhacking.kr - 문제풀이 6번] (0) 2021.04.12 [Webhacking.kr - 문제풀이 17번] (0) 2021.04.12