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

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:


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:


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:


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é 😉