---
# System prepended metadata

title: Reflected XSS into HTML context with most tags and attributes blocked
tags: [Cross-site scripting]

---

# Reflected XSS into HTML context with most tags and attributes blocked

* Với bài lab này chúng ta sẽ tiếp tục tấn công XSS ở tính năng  tìm kiếm. Chúng ta sẽ đưa vào một payload để kiểm tra.
![Capture01](https://hackmd.io/_uploads/Bklf4TRVda.png)

* Có vẻ như trang web này đã block các tag được dùng để tấn công XSS.
![Capture02](https://hackmd.io/_uploads/BkfNp0Nua.png)

* Để tìm ra các tag không bị block, chúng ta sẽ gửi request `GET /?search=...` qua Intruder, đặt vị trí payload là giá trị của biến `search`. Danh sách các payload chúng ta sẽ lấy từ cheatsheet của PorstSwigger.
![Capture03](https://hackmd.io/_uploads/S1M4pA4d6.png)

* Sau khi tấn công, chúng ta thấy có 2 tag không bị block là `body` và `custom tags`. Chúng ta sẽ chọn tag `body`.
![Capture04](https://hackmd.io/_uploads/rkfEpREda.png)

* Tiếp theo chúng ta sẽ brute-force attribute, đổi request thành `GET /?search=<body520$$=1>`. Chúng ta sẽ lấy danh sách payload ở cheatsheet của PorstSwigger.
![Capture05](https://hackmd.io/_uploads/r1zEa04O6.png)

* Lần này chúng ta thấy có 4 attribute không bị block. Chúng ta chọn attribute `onresize`.
![Capture06](https://hackmd.io/_uploads/BkMET0E_6.png)

* Vào exploit server, tạo một `iframe` trong đó là đường dẫn chứa payload `<body onresize='print()'>`.
![Capture07](https://hackmd.io/_uploads/SkGEaC4dp.png)

* Chúng ta sẽ thử thay đổi kích thước trang web. Lúc này hàm `print()` đã thực hiện. Hoàn thành bài lab.
![Capture09](https://hackmd.io/_uploads/SJzVaCEdp.png)
![Capture08](https://hackmd.io/_uploads/H1G4604OT.png)

