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 執行攻擊的影片:

祝你好運!


什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

您是否掃描過您的設備並發現它感染了 HackTool:Win32/Keygen?在您使用破解或金鑰產生器啟動進階軟體後,Windows Defender 可能會自動警告您有關此惡意軟體的存在。

在 Windows 10 上建立備份和還原點(Restore Point)的說明

在 Windows 10 上建立備份和還原點(Restore Point)的說明

探索如何在Windows 10上建立和管理還原點,這是一項有效的系統保護功能,可以讓您快速還原系統至先前狀態。

在 Windows 10 中開啟裝置管理員的 15 種方法

在 Windows 10 中開啟裝置管理員的 15 種方法

您可以使用以下 15 種方法輕鬆在 Windows 10 中開啟<strong>裝置管理員</strong>,包括使用命令、捷徑和搜尋。

Windows「顯示桌面」的 10 種超快速方法

Windows「顯示桌面」的 10 種超快速方法

很多人不知道如何快速顯示桌面,只好將各個視窗一一最小化。這種方法對於用戶來說非常耗時且令人沮喪。因此,本文將向您介紹Windows中快速顯示桌面的十種超快速方法。

如何使用 Windows Repair 修復 Windows 錯誤

如何使用 Windows Repair 修復 Windows 錯誤

Windows Repair 是一款有效的 Windows 錯誤修復工具,幫助使用者修復與 Internet Explorer、Windows Update 和其他重要程式相關的錯誤。

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

您可以使用檔案總管選項來變更檔案和資料夾的工作方式並控制顯示。掌握如何在 Windows 10 中開啟資料夾選項的多種方法。

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

刪除不使用的使用者帳戶可以顯著釋放記憶體空間,並讓您的電腦運行得更流暢。了解如何刪除 Windows 10 使用者帳戶的最佳方法。

如何使用Bootsect /nt60將VBC更新為BOOTMGR

如何使用Bootsect /nt60將VBC更新為BOOTMGR

使用 bootsect 命令能夠輕鬆修復磁碟區引導程式碼錯誤,確保系統正常啟動,避免 hal.dll 錯誤及其他啟動問題。

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

存檔應用程式是一項功能,可以自動卸載您很少使用的應用程序,同時保留其關聯的檔案和設定。了解如何有效利用 Windows 11 中的存檔應用程式功能。

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

要啟用虛擬化,您必須先進入 BIOS 並從 BIOS 設定中啟用虛擬化,這將顯著提升在 BlueStacks 5 上的效能和遊戲體驗。