# Cross-site scripting Lab4 這題為 DOM-based XSS,使用了不安全的 DOM sink,攻擊者能控制 location.search(也就是 URL 的 ? 後面內容)。 一樣先進入網站。 ![image](https://hackmd.io/_uploads/ByO-nIGBll.png) 在輸入框隨便輸入個東西。 ![image](https://hackmd.io/_uploads/B1z72IzBll.png) 查看原始碼。 ![image](https://hackmd.io/_uploads/HkUUhLMrlg.png) 這段定義了一個函式 doSearchQuery,它會把傳入的 query 值直接設成 searchMessage 這個元素的 innerHTML。 接著從網址中拿取 `?search=...` 的值 並存到 query 裡。 最後,如果 query 存在就呼叫 doSearchQuery(query): ```javascript <img src=1 onerror=alert(1)> ``` 所以我們嘗試放 img 元素,src 不成立就會觸發 onerror。 ``` <img src=1 onerror=alert(1)> ``` ![image](https://hackmd.io/_uploads/HkrSpUzrxe.png) ---