# Cross-site scripting Lab9 本題 Reflected XSS,反射點出現在一段 JavaScript 字串中,而且尖括號 (< >) 有被 HTML encode,所以不能直接寫 `<script>`。 一樣先進入網站。  隨便搜尋個東西並查原始碼。  這裡會把 searchTerms 設定為字串 `bg`,使用 `document.write()` 將一張追蹤圖片插入頁面,圖片的 URL 中會帶上 searchTerms 的值作為參數,最終產出的 HTML 會像這樣: ``` <img src="/resources/images/tracker.gif?searchTerms=bg"> ``` 這段程式碼的弱點會發生在 searchTerms 是從 location.search(網址列)讀入的情況,簡單來說,我們可以控制 searchTerms 的值。 但尖括號會被弄掉,所以我們用單引號 ``` '-alert(1)-' ``` `'`:關閉兩邊的單引號。 `-`:讓 payload 更穩定地避開語法錯誤。   :::info ### 為什麼要包 -? 這些 `-` 是裝飾用的字元,主要作用: - 保證你寫的 payload 是一段合法的 JS 字串。 - 讓你的 payload 包在安全的字元中,避免前後語法衝突。 - 在某些情況下,可以混淆偵測規則(例如某些簡單的 XSS filter)。 ::: ---
×
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