kangsecu's B1og

[webhacking.kr] pro 51 문제풀이 본문

Web Hacking/webhakcing.kr

[webhacking.kr] pro 51 문제풀이

Kangsecu 2018. 2. 25. 00:11

[webhacking.kr] pro 51 문제를 풀어보도록 하겠습니다 . 

문제에 들어가면 admin page라고 하면서 로그인폼이 출력됩니다. 이제 코드를 확인하도록 하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<html>
<head>
<title>Challenge 51</title>
<style>
table{ color:lightgreen;}
</style>
</head>
<body bgcolor=black><br><br>
<font color=silver>
<center><h1>Admin page</h1></center>
</font>
<?
 
 
if($_POST[id] && $_POST[pw])
{
$input_id=$_POST[id];
$input_pw=md5($_POST[pw],true);
 
$q=@mysql_fetch_array(mysql_query("select id from challenge_51_admin where id='$input_id' and pw='$input_pw'"));
 
if($q[id]=="admin")
{
@solve(51,250);
}
 
if($q[id]!="admin"echo("<center><font color=green><h1>Wrong</h1></font></center>");
 
 
}
 
?>
<br><br><br>
<form method=post action=index.php>
<table border=0 align=center bgcolor=gray width=200 height=100>
<tr align=center><td>ID</td><td><input type=text name=id></td></tr>
<tr align=center><td>PW</td><td><input type=password name=pw></td></tr>
<tr><td colspan=2 align=center><input type=submit></td></tr>
</table>
<font color=silver>
<div align=right><br>.<br>.<br>.<br>.<br><a href=index.phps>Source</a></div>
</font>
</form>
</body>
</html>
cs

이렇게 코드가 있는데 보니까 wargame.kr 에 있는 md5 password문제와 동일합니다. 그 문제와 동일한 md5함수에 true인자 전달에서 취약점이 나옵니다.

그래서 md5 password문제와 동일한 방법으로 해결하였습니다.

'='가 나오는 쿼리값을 입력해주면 됩니다. 자세한 설명은(사실 자세하지도 않지만) http://kangsecu.tistory.com/76?category=701998 이곳에 있습니다.

webhacking.kr pro 51 Clear!