文章目錄
一、含義
XSS(Cross Site Scripting,跨站腳本攻擊)最普遍的Web安全漏洞,原因由於Web應用程序對用戶的輸入過濾不足,導致攻擊者可以嵌入惡意腳本代碼到正常用戶訪問的頁面中,當正常用戶訪問時惡意代碼便會執行。爲了不和CSS混淆,改名爲XSS。
二、漏洞普遍原因
- web瀏覽器本身不安全,默認的執行和解析JS等腳本語言,不會判斷數據和程序代碼是否惡意;
- 如今的站點多存在輸入輸出,動態的交互便擴大了攻擊範圍;
- 團隊合作開發使得應用程序健強性不穩定;(程序員水平參差不齊)
- 未意識到XSS漏洞危害,很多企業不像在安全上花費更多的成本;
- 攻擊手段多、攻擊範圍廣、攻擊要求低、攻擊方式花
三、XSS分類
3.1 反射型XSS
3.1.1 含義
反射型XSS(Reflected Cross-site Scripting)非持久型跨站腳本,誘使用戶去點擊一個包含惡意代碼的URL,當受害者點時惡意JS代碼便會直接在受害者主機運行。
3.1.2 特點
- 惡意代碼暴露在URL中
- 需用戶單擊觸發
- 每個腳本只執行一次
- 攻擊成本高(用戶不會輕易點擊外來鏈接)
3.2 存儲型XSS
3.2.1 含義
存儲型XSS(Stored Cross-site Scripting)惡意攻擊者插入的代碼在客戶端或數據庫中,當用戶瀏覽站點時,站點便加載出之前插入的惡意代碼並執行,多存儲在登錄、個人信息、訂單信息、意見反饋、評論留言等用戶可輸入的地方。
3.2.2 特點
- 比反射危害大
- 插入一次執行多次
3.3 DOM型XSS
3.3.1 含義
DOM型XSS(DOM-base XSS)基於文檔對象模型的一種漏洞,參數通過url傳遞,不會像反射型和存儲型XSS與數據庫交互(實現過程在前臺)反射型的一種。
3.3.2 特點
- 基於DOM
- 無數據庫交互
- 前臺
四、XSS危害
- 竊取Cookie,進行越權敏感操作;
- 網絡釣魚,盜取各類賬號;
- 劫持會話(非法轉賬、強制發表文章)
- 強制彈廣告、SEO惡意運營、刷流量;
- 客戶端攻擊(獲取客戶端敏感信息、DDOS)
- 蠕蟲傳播
- 網頁掛馬……
五、XSS防禦
- 使用HttpOnly(在瀏覽器的document對象中看不到cookie了,而瀏覽器瀏覽時不受影響);
- 對輸入和URL參數進行過濾:
-
- 白名單:限制輸入內容,如只能輸入數字和字符其它輸入都是非法;
-
- 黑名單:列出不能使用的對象清單,如< > /等
- 對輸出進行編碼、轉義(按照輸出的環境對動態輸出的內容進行編碼和轉義)
-
- < 轉成 <
-
- > 轉成 >;
-
- ’ 轉成 '
-
- " 轉成 "