-
webhacking.kr 문제 26번 풀이web/webhacking.kr 2019. 6. 14. 16:04
webhacking.kr 26번 문제를 풀어보도록 하겠습니다.
우선 문제에 들어가게 되면 php문서 파일이 나옵니다. 위 코드가 php문서입니다.
코드를 보게 되면 eregi함수가 보입니다. eregi함수는 사용자 입력 검증 및 필터링에 사용되는 함수이며, 현제는
취약점이 있다 보고가 되어 PHP 5.3 부터는 preg match함수를 사용할 것을 권장한다.
다시 본론으로 들어와서 코드를 살펴보면 만약 입력받은 id값이 admin이면 no가 호출되고 종료를 한다.
그 후 입력된 id 값을 url디코더 시켜서 그다음 if문에서 admin인가를 검증하는 코드이다.
우선 admin을 url encoder로 인코딩 해줍니다. 그리고 id값에 넣습니다.
실패했습니다. 원인을 찾아봅시다. 여기서 알아야 되는 기본 지식은 데이터를 서버에 전달과 동시에 php가
디코딩을 하여 받아들여집니다. 따라서 우리가 인코딩 해서 보냈지만 서버에서는 admin으로 받아들여
필터링이 된 것이다. 따라서 한 번 더 인코딩하면 가볍게 첫 if문을 통과하고 2번째 if문에서 admin으로
풀려 문제가 해결될 것입니다.
저는 예전에 성공을 해놓은 문제입니다...
이렇게 26번 문제를 해결해 보았습니다.
반응형'web > webhacking.kr' 카테고리의 다른 글
webhacking.kr 문제 20번 풀이 (0) 2019.06.14 webhacking.kr 문제 17 번 풀이 (0) 2019.06.14 webhacking.kr 문제 6번 풀이 (0) 2019.06.07 webhacking.kr 문제 4번 풀이 (0) 2019.06.07 webhacking.kr 문제 16번 풀이 (0) 2019.05.15