Web9:XSS 攻擊類型 - 第 3 部分:基於 Dom 的 XSS

Web9:XSS 攻擊類型 - 第 3 部分:基於 Dom 的 XSS

我們已經提到了兩種類型的XSS漏洞:反射型和儲存型,它們都有一個共同的特點,就是危險的程式碼插入後,會在伺服器回應後執行,這意味著錯誤在伺服器端。還有另一種類型的 XSS 攻擊違反了這一特性,惡意程式碼在客戶端立即執行,而不經過伺服器,稱為基於 DOM 的 XSS 或也稱為 0 型 XSS。

首先我們要知道DOM是什麼?

DOM 是文件物件模型的縮寫,是 W3C (http://www.w3.org/DOM/) 的標準形式,旨在檢索和操作結構化文件(例如 HTML 和 XML)的資料。該模型將文件表示為分層樹結構。 HTML 和 XML 中的所有元素都被視為節點。

基於 DOM 的 XSS 是一種基於更改文件(特別是 HTML)的 DOM 結構的 XSS 攻擊技術。

下面我們來看一個具體的例子:

某個網站的註冊頁面具有以下 URL:

example.com/register.php?message=Please fill in the form

當我們訪問它時,我們看到一個非常正常的Form:

Web9:XSS 攻擊類型 - 第 3 部分:基於 Dom 的 XSS

可以很容易的推導表單上通知內容傳入的message參數,仔細看一下這個通知的原始碼:

Web9:XSS 攻擊類型 - 第 3 部分:基於 Dom 的 XSS

JavaScript 段負責從訊息參數中取得值並列印它。透過這種鬆懈的輸入檢查,完全有可能誘騙使用者存取危險的 URL。

而不是鑄造:

message=Please fill in the form

然後傳輸:

message=GenderMaleFemale

function show(){alert();}

然後註冊表將如下所示:

Web9:XSS 攻擊類型 - 第 3 部分:基於 Dom 的 XSS

使用者不會對這樣的「正常」形式產生懷疑,當選擇性別時,腳本將被執行:

Web9:XSS 攻擊類型 - 第 3 部分:基於 Dom 的 XSS

我將進一步解釋一下在訊息參數中傳遞的值:

GenderMaleFemale

function show(){alert();}

它的主要目的是每次select標籤上有onchage事件時執行show()函數,這裡的show()函數只是彈出來顯示腳本已經執行完畢。然而現實中,駭客經常利用這個show()函數來執行一個腳本,將使用者的cookie值傳輸到預定的伺服器,讀者可以回顧一下Reflected XSS一文,裡面提到了駭客如何創建這個請求是什麼樣子的?

這個例子給了我們兩個重要的結論。首先,惡意程式碼在點擊 select 標記中的值後立即執行,這意味著它是在客戶端直接執行的,而不經過伺服器的回應。其次,HTML 結構已隨傳遞的腳本而變更。我們還可以看到實際的利用場景,在欺騙使用者存取嵌入惡意程式碼的 URL 方面,DOM Based 與 Reflected 比 Stored XSS 更相似。

下圖描述了實現基於DOM的XSS攻擊技術的每個步驟:

Web9:XSS 攻擊類型 - 第 3 部分:基於 Dom 的 XSS

以下是 WhiteHat.vn 論壇成員透過基於 DOM 的 XSS 執行攻擊的影片:

祝你好運!


Windows + V:許多 Windows 使用者不知道的有用捷徑

Windows + V:許多 Windows 使用者不知道的有用捷徑

與許多其他平台一樣,Windows 也有一個專門的剪貼簿管理器,稱為「剪貼簿歷史記錄」。

如何在 Windows 10 上安裝 macOS Big Sur/iOS 14 小工具

如何在 Windows 10 上安裝 macOS Big Sur/iOS 14 小工具

macOS Big Sur 版本在最近的 WWDC 大會上正式公佈。並且您可以使用 Rainmeter 工具將 macOS Big Sur 的介面完全帶到 Windows 10 上。

如何保護遠端桌面免受 RDStealer 惡意軟體的侵害

如何保護遠端桌面免受 RDStealer 惡意軟體的侵害

RDStealer 是一種惡意軟體,它試圖透過感染 RDP 伺服器並監控其遠端連線來竊取憑證和資料。

7 個 Windows 最佳檔案管理軟體,可取代檔案總管

7 個 Windows 最佳檔案管理軟體,可取代檔案總管

也許是時候告別文件資源管理器並使用第三方文件管理軟體了?以下是 7 個最佳 Windows 檔案總管替代品。

LoRaWAN 是如何運作的?為什麼它對物聯網很重要?

LoRaWAN 是如何運作的?為什麼它對物聯網很重要?

LoRaWAN 或遠端無線區域網路對於低功耗設備之間的長距離通訊非常有用。

在 Windows 10 上開啟進階啟動選項的 8 種方法

在 Windows 10 上開啟進階啟動選項的 8 種方法

透過導覽至進階啟動選項,您可以重設 Windows 10、還原 Windows 10、從先前建立的映像檔還原 Windows 10、修復啟動錯誤、開啟命令提示字元以執行選項選擇不同、開啟 UEFI 設定、變更啟動設定。 ..

為什麼在使用社群網路帳號登入之前應該仔細考慮?

為什麼在使用社群網路帳號登入之前應該仔細考慮?

每次註冊新服務時,您都可以選擇使用者名稱和密碼,或直接使用 Facebook 或 Twitter 登入。但你應該這樣做嗎?

更改 Google DNS 8.8.8.8 和 8.8.4.4 的說明

更改 Google DNS 8.8.8.8 和 8.8.4.4 的說明

DNS Google 8.8.8.8 8.8.4.4是許多使用者選擇使用的DNS之一,特別是為了加速網路存取或存取被封鎖的Facebook。

如何在 Windows 10 上始終以 InPrivate 模式啟動 Microsoft Edge

如何在 Windows 10 上始終以 InPrivate 模式啟動 Microsoft Edge

如果你在共用的 Windows 10 電腦上使用 Microsoft Edge 並且希望將瀏覽記錄保密,則可以讓 Edge 始終以 InPrivate 模式啟動。

探討對稱加密和非對稱加密的差異

探討對稱加密和非對稱加密的差異

目前普遍部署的加密有兩種類型:對稱加密和非對稱加密。這兩種類型的加密之間的基本區別在於,對稱加密使用單一金鑰進行加密和解密操作。