본문 바로가기
웹 해킹/webhacking.kr

webhacking.kr 39번

by sonysame 2018. 2. 9.

소스는 다음과 같다.

<html>
<head>
<title>Chellenge 39</title>
</head>
<body>
<!-- index.phps -->


<form method=post action=index.php>
<input type=text name=id maxlength=15 size=30>
<input type=submit>
</form>
</body>
</html>

index.phps가 주석처리 되어 있으므로, index.phps를 살펴보자!

 

<html>
<head>
<title>Chellenge 39</title>
</head>
<body>

<?

$pw
="????";

if(
$_POST[id])
{
$_POST[id]=str_replace("\\","",$_POST[id]);
$_POST[id]=str_replace("'","''",$_POST[id]);
$_POST[id]=substr($_POST[id],0,15);
$q=mysql_fetch_array(mysql_query("select 'good' from zmail_member where id='$_POST[id]"));

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

}

?>

<form method=post action=index.php>
<input type=text name=id maxlength=15 size=30>
<input type=submit>
</form>
</body>
</html>


\\->null

'->''

id는 0은 start, 15는 length


지금 문제는

 where id='$_POST[id]"));

에서 $_POST[id]가 쿼터가 닫히지 않은 것이다!

하지만 싱글쿼터를->''로 바꿔버리므로 문제가 되는데, 이는 15글자를 자르는 특성을 이용해서

admin         '로 만들어서 마지막'은 잘리게 만든다!



'웹 해킹 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 19번-문제 오류  (0) 2018.02.09
webhacking.kr 54번  (0) 2018.02.09
webhacking.kr 38번  (0) 2018.02.09
webhacking.kr 26번  (0) 2018.02.09
webhacking.kr 24번  (0) 2018.02.09