26번 문제에 들어가면 'view-source'만 있다.
GET 형식으로 받은 id 값이 admin이면 풀리는 문제인 것 같다.
하지만 조건문보다 위에 preg_match 함수로 admin이란 값을 필터링하고 있기 때문에 admin이란 값을 넣어줄 수 없을 것 같다.
또한, 그 밑에 id의 값을 urldecode() 함수를 통해서 변조시키는 것을 확인할 수 있다.
그럼 admin의 값을 url 인코딩으로 입력해보다.
url 인코딩 표를 이용해서 admin을 바꾸면 %61%64%6D%69%6E의 값이 된다.
이 값을 id로 입력해보자.
no! 라는 값이 나온다.
맨처음 조건절에서 preg_match() 함수의 막힌 것 같다.
그 이유는 웹서버와 브라우저 사이에서 데이터를 교환할 때 브라우저는 폼에서 입력받은 데이터를 자동으로 인코딩한 값을 보내고 php는 자동으로 디코딩하기 때문이다.
그렇다면 %61%64%6D%69%6E의 값을 한 번 더 인코딩 해주어서 %61%64%6D%69%6E을 인코딩 한 값에서 브라우저로 넘어갈때 %61%64%6D%69%6E로 넘어갈 것이고 urldecode 함수에 의해 admin이 될 것이다.
인코딩한 값을 복사하여 시도한다.
문제를 풀었다.
'Webhaking > WebHaking CTF' 카테고리의 다른 글
[Webhaking.kr] old 20번 (0) | 2021.09.30 |
---|---|
[Webhaking.kr] old 16번 (0) | 2021.09.30 |
[Webhaking.kr] old 24번 (0) | 2021.09.29 |
[Webhaking.kr] old 10번 (0) | 2020.11.26 |
[Webhaking.kr] old 1번 (0) | 2020.11.26 |