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 10 螢幕右上角的版權請求通知

如何刪除 Windows 10 螢幕右上角的版權請求通知

您是否在螢幕右上角看到 Windows 10 啟動通知?本文將指導您如何刪除Windows 10上的版權請求通知。

AZ 有關如何安裝 Windows 10 內部版本 14393.222 的說明

AZ 有關如何安裝 Windows 10 內部版本 14393.222 的說明

最近微軟為Windows 10 PC用戶發布了最新的累積更新,名為Build 14393.222。這次針對Windows 10發布的更新主要根據使用者回饋修復了Bug,並提升了作業系統的效能體驗。

只需 3 步驟即可使用 Bastion 主機保護您的電腦網絡

只需 3 步驟即可使用 Bastion 主機保護您的電腦網絡

您的本機網路上是否有需要外部存取的電腦?使用堡壘主機作為網路的看門人可能是一個很好的解決方案。

如果您的鍵盤無法使用,如何建立 Windows 鍵

如果您的鍵盤無法使用,如何建立 Windows 鍵

如果您喜歡使用舊的經典鍵盤,例如 IBM Model M,它不包含實體 Windows 鍵,那麼有一個簡單的方法可以添加更多按鍵,即藉用您不經常使用的鍵。

快速清除Windows 10中所有事件日誌的3種方法

快速清除Windows 10中所有事件日誌的3種方法

有時您可能需要一次刪除所有舊的事件日誌。在本指南中,Quantrimang.com 將向您展示 3 種快速刪除 Windows 10 事件檢視器中所有事件日誌的方法。

假IP方式幫助您匿名訪問

假IP方式幫助您匿名訪問

在之前的許多文章中,我們已經提到在線保持匿名非常重要。私人資訊每年都會被洩露,使得網路安全變得越來越必要。這也是我們應該使用虛擬IP位址的原因。下面,我們就來學習製作假IP的方法!

如何在 Windows 10 上建立透明背景模式

如何在 Windows 10 上建立透明背景模式

WindowTop 是一款能夠調暗 Windows 10 電腦上運行的所有應用程式視窗和程式的工具。或者您可以在 Windows 上使用深色背景介面。

如何關閉 Windows 8 工作列上的語言列

如何關閉 Windows 8 工作列上的語言列

Windows 8 上的語言列是一個微型語言工具列,旨在自動顯示在桌面螢幕上。然而,很多人想在工作列上隱藏這個語言欄。

如何為 Linksys 路由器設定 WEP、WPA、WPA2

如何為 Linksys 路由器設定 WEP、WPA、WPA2

無線連接是當今的必需品,因此,無線安全對於確保內部網路的安全至關重要。

Linksys 優化網路連線速度的技巧

Linksys 優化網路連線速度的技巧

最大限度地提高網路速度對於優化網路連線至關重要。您可以使用電腦、可上網的電視、遊戲機等獲得最佳的娛樂和工作體驗。