Tìm hiểu về lỗ hổng Cross-Site Scripting (Phần 2)

Ở phần trước, chúng ta đã tìm hiểu về các dạng lỗi Cross-Site Scripting (XSS)

Hôm nay, chúng ta sẽ làm rõ chúng thông qua một vài challenge tại https://xss-quiz.int21h.jp/.

Có một số rule như sau:

Notes (for all stages): 
 NEVER DO ANY ATTACKS EXCEPT XSS. 
 DO NOT USE ANY AUTOMATED SCANNER (AppScan, WebInspect, WVS, ...) 
 Some stages may fit only IE. 
Ranking (optional): 
 If you want to participate in ranking, please register here now. 
 (You should register before tackling stage #1.) 
What you have to do: 
 Inject the following JavaScript command: alert(document.domain); 

Lưu ý: Trong bài viết, tôi sử dụng Firefox và add-ons Hackbar

Nếu sử dụng Chrome, bạn có thể dùng extensions với chức năng tương tự, ví dụ như Advanced REST client

Nào, chúng ta cùng bắt đầu nhé.

Stage #1:
Đầu tiên, chúng ta sẽ thử payload đơn giản nhất:

<script>alert(document.domain);</script>

stage1

Vậy là đã vượt qua stage 1, chưa gặp nhiều khó khăn phải không

Stage #2:
Ta thử payload giống như ở Stage #1:

stage2_1

Bây giờ ta sẽ view source của kết quả vừa nhận được:
stage2_2

Để ý vào phần bôi vàng, nó giống hệt nội dung input chúng ta nhập vào.

Tiếp theo, ta sẽ thử bypass bằng cách sử dụng các ký tự đặc biệt để đưa đoạn script kia “ra bên ngoài” thẻ input.
Bạn có thể tham khảo payload sau đây:

"> <script>alert(document.domain);</script>

stage2_3

Stage #3:
Tương tự ở stage #2, nhập payload xem kết quả trả về, và view source

stage3_1

Ở đây ta thấy phần 1 là url để gửi POST request, phần 2 và 3 là tên các input, phần 4 và 5 lần lượt là giá trị trả về của 2 và 3. Tuy nhiên, có một điều cần chú ý là phần 3, input là Japan, và kết quả trả về cũng vậy.
Ta sẽ thử payload sau bằng cách sử dụng add-ons Hackbar

stage3_2

Stage #4:
View source sau khi thử payload:

stage4_1

Tiếp tục sử dụng hackbar bằng việc thay đổi giá trị của p3 như ở stage #2:
stage4_2

Stage #5:
Ở đây, thử nhập input ta thấy chỉ nhập được 15 ký tự. Bật F12 sau đó bỏ maxlength đi, sau đó thử payload giống như ở stage #2.

stage5_1

stage5_2

Vừa rồi chúng ta đã trải vượt qua challenges, cùng thử sức với các challenges tiếp theo ở blog sau nhé 😉

Add a Comment

Scroll Up