Web Hacking/webhakcing.kr
[webhacking.kr] pro 49 문제풀이
Kangsecu
2018. 2. 24. 02:41
[webhacking.kr] pro 49 문제를 풀어보도록 하겠습니다.
이번에도 SQL INJECTION입니다. 코드를 확인해보도록 하겠습니다.
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 29 30 31 32 33 34 35 36 37 38 39 40 41 | <html> <head> <title>Challenge 49</title> </head> <body> <h1>SQL INJECTION</h1> <form method=get action=index.php> level : <input name=lv value=1><input type=submit> </form> <? if(time()<1258110000) exit(); if($_GET[lv]) { if(eregi("union",$_GET[lv])) exit(); if(eregi("from",$_GET[lv])) exit(); if(eregi("select",$_GET[lv])) exit(); if(eregi("or",$_GET[lv])) exit(); if(eregi("and",$_GET[lv])) exit(); if(eregi("\(",$_GET[lv])) exit(); if(eregi("\)",$_GET[lv])) exit(); if(eregi("limit",$_GET[lv])) exit(); if(eregi(",",$_GET[lv])) exit(); if(eregi("/",$_GET[lv])) exit(); if(eregi("by",$_GET[lv])) exit(); if(eregi("desc",$_GET[lv])) exit(); if(eregi("asc",$_GET[lv])) exit(); if(eregi("cash",$_GET[lv])) exit(); if(eregi(" ",$_GET[lv])) exit(); if(eregi("%09",$_GET[lv])) exit(); $q=@mysql_fetch_array(mysql_query("select id from members where lv=$_GET[lv]")); echo($q[0]); if($q[0]=="admin") @solve(); } ?> <!-- index.phps --> </body> </html> | cs |
엄청 많이 필터링합니다. 그리고 결국은 admin이 들어가야합니다. 이제 해보도록 하겠습니다.
Exploit
앞에 쿼리를 거짓으로 만들기 위하여 2를 입력하고 or이 필터링이 되어서 ||로 우회했습니다. 2||id=admin 이러한 쿼리를 전송했는데, 안됬습니다. 그래서 admin을 hex값으로 변경해서 전송했습니다.
webhacking.kr pro 49 Clear!