課程介紹
什么是 XSS
Cross-Site Scripting(跨站腳本攻擊)簡稱 XSS,是一種代碼注入攻擊。攻擊者通過在目標網站上注入惡意腳本,使之在用戶的瀏覽器上運行。利用這些惡意腳本,攻擊者可獲取用戶的敏感信息如 Cookie、SessionID 等,進而危害數據安全。
XSS 的本質是:惡意代碼未經過濾,與網站正常的代碼混在一起;瀏覽器無法分辨哪些腳本是可信的,導致惡意腳本被執行。
而由于直接在用戶的終端執行,惡意代碼能夠直接獲取用戶的信息,或者利用這些信息冒充用戶向網站發起攻擊者定義的請求。
在部分情況下,由于輸入的限制,注入的惡意腳本比較短。但可以通過引入外部的腳本,并由瀏覽器執行,來完成比較復雜的攻擊策略。
不僅僅是業務上的“用戶的 UGC 內容”可以進行注入,包括 URL 上的參數等都可以是攻擊的來源。在處理輸入時,以下內容都不可信:
來自用戶的 UGC 信息
來自第三方的鏈接
URL 參數
POST 參數
Referer (可能來自不可信的來源)
Cookie (可能來自其他子域注入)
XSS 分類
根據攻擊的來源,XSS 攻擊可分為存儲型、反射型和 DOM 型三種。
類型 存儲區* 插入點*
存儲型 XSS 后端數據庫 HTML
反射型 XSS URL HTML
DOM 型 XSS 后端數據庫/前端存儲/URL 前端 JavaScript
存儲區:惡意代碼存放的位置。
插入點:由誰取得惡意代碼,并插入到網頁上。
存儲型 XSS
存儲型 XSS 的攻擊步驟:
攻擊者將惡意代碼提交到目標網站的數據庫中。
用戶打開目標網站時,網站服務端將惡意代碼從數據庫取出,拼接在 HTML 中返回給瀏覽器。
用戶瀏覽器接收到響應后解析執行,混在其中的惡意代碼也被執行。
惡意代碼竊取用戶數據并發送到攻擊者的網站,或者冒充用戶的行為,調用目標網站接口執行攻擊者指定的操作。
這種攻擊常見于帶有用戶保存數據的網站功能,如論壇發帖、商品評論、用戶私信等。
反射型 XSS
反射型 XSS 的攻擊步驟:
攻擊者構造出特殊的 URL,其中包含惡意代碼。
用戶打開帶有惡意代碼的 URL 時,網站服務端將惡意代碼從 URL 中取出,拼接在 HTML 中返回給瀏覽器。
用戶瀏覽器接收到響應后解析執行,混在其中的惡意代碼也被執行。
惡意代碼竊取用戶數據并發送到攻擊者的網站,或者冒充用戶的行為,調用目標網站接口執行攻擊者指定的操作。
反射型 XSS 跟存儲型 XSS 的區別是:存儲型 XSS 的惡意代碼存在數據庫里,反射型 XSS 的惡意代碼存在 URL 里。
反射型 XSS 漏洞常見于通過 URL 傳遞參數的功能,如網站搜索、跳轉等。
由于需要用戶主動打開惡意的 URL 才能生效,攻擊者往往會結合多種手段誘導用戶點擊。
POST 的內容也可以觸發反射型 XSS,只不過其觸發條件比較苛刻(需要構造表單提交頁面,并引導用戶點擊),所以非常少見。
DOM 型 XSS
DOM 型 XSS 的攻擊步驟:
攻擊者構造出特殊的 URL,其中包含惡意代碼。
用戶打開帶有惡意代碼的 URL。
用戶瀏覽器接收到響應后解析執行,前端 JavaScript 取出 URL 中的惡意代碼并執行。
惡意代碼竊取用戶數據并發送到攻擊者的網站,或者冒充用戶的行為,調用目標網站接口執行攻擊者指定的操作。
DOM 型 XSS 跟前兩種 XSS 的區別:DOM 型 XSS 攻擊中,取出和執行惡意代碼由瀏覽器端完成,屬于前端 JavaScript 自身的安全漏洞,而其他兩種 XSS 都屬于服務端的安全漏洞。
目錄
1 : XSS漏洞滲透測試實踐
任務1: 漏洞利用-XSS漏洞滲透測試實踐.rar
2 : XSSER及XSS漏洞深入研究和實踐
任務1: 漏洞利用-XSSER及XSS漏洞深入研究和實踐.rar
3 : XSS漏洞安全測試技術
任務1: 漏洞利用-XSS漏洞安全測試技術.rar
|