<html>

<head>

<title>Challenge 46</title>

</head>

<body>

<form method=get action=index.php>

level : <input name=lv value=1><input type=submit>

</form>

<?

if(time()<1256900400) exit();


?>

<!-- index.phps -->

<?


$_GET[lv]=str_replace(" ","",$_GET[lv]);

$_GET[lv]=str_replace("/","",$_GET[lv]);

$_GET[lv]=str_replace("*","",$_GET[lv]);

$_GET[lv]=str_replace("%","",$_GET[lv]);


if(eregi("union",$_GET[lv])) exit();

if(eregi("select",$_GET[lv])) exit();

if(eregi("from",$_GET[lv])) exit();

if(eregi("challenge",$_GET[lv])) exit();

if(eregi("0x",$_GET[lv])) exit();

if(eregi("limit",$_GET[lv])) exit();

if(eregi("cash",$_GET[lv])) exit();


$q=@mysql_fetch_array(mysql_query("select id,cash from members where lv=$_GET[lv]"));


if($q && $_GET[lv])

{

echo("$q[0] information<br><br>money : $q[1]");


if($q[0]=="admin") @solve();


}

?>


</body>

</html>


lv 파라미터 값을 전달하고 있다.(기본값 1).

또한, 전달되는 파라미터를 필터처리하는데 필터되는 문자는 공백, /, *, %, union, select, from, challenge, 0x, limit, cash 이다.


$q[0]은 $q['id']를 의미하며, $q['id']값이 admin이 되려면 파라미터에 0%09or%09id=char(97,100,109,105,110)# 를 입력하면된다.


입력폼에 입력하면 %부분을 %25로 인코딩하기 때문에 URL 에 직접입력하든

프록시 도구로 인터셉트해서 입력해야함.

+ Recent posts