[Webhacking.kr] 26번
2017. 9. 6. 23:36
25번은 들어가면 index.phps라는 링크만 있다. 소스를 보고 풀라는것 같으니 바로 보도록 하자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <html> <head> <title>Challenge 26</title> <style type="text/css"> body { background:black; color:white; font-size:10pt; } a { color:lightgreen; } </style> </head> <body> <? if(eregi("admin",$_GET[id])) { echo("<p>no!"); exit(); } $_GET[id]=urldecode($_GET[id]); if($_GET[id]=="admin") { @solve(26,100); } ?> <br><br> <a href=index.phps>index.phps</a> </body> </html> | cs |
소스는 위와 같다.
GET으로 id값을 받아서 값에 admin이 있으면 exit한다.
그게 아니면 GET으로 받은 id값을 urldecode하고
그 값을 문자열 "admin"과 비교해서 같으면 solve로 간다.
admin을 urlencode한 값을 넣어주면 풀릴것같다. admin을 url인코딩표(아스키코드표)로 보고 인코딩하면 %61%64%6d%69%6e이다.
이것을 id로 입력하였으나. 저 값이 admin으로 자동으로 디코딩되어버려서 eregi함수에 의해 막혀버린다. (%61%64%6d%69%6e은 웹에서 admin과 같은것이다.) 그래서 저 값을 한번더 인코딩해서 넣어주면 디코딩된 것이 넣어지므로 %61%64%6d%69%6e이 넣어질 것이다.
인코딩 사이트 : http://www.convertstring.com/ko/EncodeDecode/UrlEncode
https://meyerweb.com/eric/tools/dencoder/
%61%64%6d%69%6e을 인코딩해서 %2561%2564%256d%2569%256e을 얻었다. 이 값은 eregi에 의해 막히지 %61%64%6d%69%6e로 들어가서 내부에서 디코딩되어 admin이 될것이다.
You have cleared the 26 problems.
Score + 100
클리어~
'Wargame > 웹해킹(Webhacking.kr)' 카테고리의 다른 글
[Webhacking.kr] 32번 (0) | 2017.09.18 |
---|---|
[Webhacking.kr] 27번 (0) | 2017.09.06 |
[Webhacking.kr] 25번 (0) | 2017.09.06 |
[Webhacking.kr] 24번 (0) | 2017.09.06 |
[Webhacking.kr] 19번 (0) | 2017.09.06 |