合肥政務(wù)新區(qū)建設(shè)局網(wǎng)站百度搜索引擎的功能
文章目錄
- 靶場網(wǎng)址
- 第一個實驗
- 步驟和原理(代碼為示例要根據(jù)自己的實驗修改)
- 第二個實驗
- 步驟和原理(代碼為示例要根據(jù)自己的實驗修改)
靶場網(wǎng)址
注冊后點擊
第一個實驗
此實驗室包含一個 DOM 破壞漏洞。注釋功能允許“安全”HTML。為了解決這個實驗,請構(gòu)造一個 HTML 注入,該注入會破壞一個變量并使用 XSS 調(diào)用 alert() 函數(shù)。
步驟和原理(代碼為示例要根據(jù)自己的實驗修改)
轉(zhuǎn)到其中一篇博客文章并創(chuàng)建包含以下錨點的評論:
<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:"οnerrοr=alert(1)//">
返回到博客文章并創(chuàng)建包含任何隨機文本的第二條評論。下次加載頁面時,將調(diào)用 alert()。
特定博客文章的頁面導入 JavaScript 文件loadCommentsWithDomPurify.js,其中包含以下代碼:
let defaultAvatar = window.defaultAvatar || {avatar: '/resources/images/avatarDefault.svg'}
defaultAvatar 對象是使用這種危險的模式實現(xiàn)的,該模式包含邏輯 OR 運算符和全局變量。這使得它容易受到 DOM 破壞。
您可以使用錨標記來破壞此對象。創(chuàng)建兩個具有相同 ID 的錨點會導致它們被分組到 DOM 集合中。第二個錨點中的 name 屬性包含值 “avatar”,該值將使用 href 屬性的內(nèi)容破壞 avatar 屬性。
請注意,該站點使用 DOMPurify 過濾器來嘗試減少基于 DOM 的漏洞。但是,DOMPurify 允許您使用 cid: 協(xié)議,該協(xié)議不會對雙引號進行 URL 編碼。這意味著您可以注入一個編碼的雙引號,該引號將在運行時被解碼。因此,上述注入將導致 defaultAvatar 變量在下次加載頁面時被分配 clobbered 屬性 {avatar: ‘cid:“οnerrοr=alert(1)//’}。
當您發(fā)布第二篇文章時,瀏覽器會使用新創(chuàng)建的全局變量,該變量會在 onerror 事件處理程序中走私有效負載并觸發(fā) alert()。
第二個實驗
本實驗使用 HTMLJanitor 庫,該庫容易受到 DOM 破壞。為了解決這個實驗,請構(gòu)造一個繞過過濾器的向量,并使用 DOM 拼接來注入一個調(diào)用 print() 函數(shù)的向量。您可能需要使用漏洞利用服務(wù)器才能使您的向量在受害者的瀏覽器中自動執(zhí)行。
步驟和原理(代碼為示例要根據(jù)自己的實驗修改)
轉(zhuǎn)到其中一篇博客文章并創(chuàng)建包含以下 HTML 的評論:
<form id=x tabindex=0 onfocus=print()><input id=attributes>
轉(zhuǎn)到漏洞利用服務(wù)器并將以下 iframe 添加到正文中:
<iframe src=https://YOUR-LAB-ID.web-security-academy.net/post?postId=3 οnlοad="setTimeout(()=>this.src=this.src+'#x',500)">
請記住更改 URL 以包含您的實驗室 ID,并確保 postId 參數(shù)與您在上一步中注入 HTML 的博客文章的 postId 匹配。
存儲漏洞并將其交付給受害者。下次加載頁面時,將調(diào)用 print() 函數(shù)。
該庫使用 attributes 屬性來篩選 HTML 屬性。但是,仍然有可能破壞 attributes 屬性本身,從而導致長度未定義。這使我們能夠?qū)⑺璧娜魏螌傩宰⑷氲奖韱卧刂?。在本例?#xff0c;我們使用 onfocus 屬性來走私 print() 函數(shù)。
當加載 iframe 時,經(jīng)過 500 毫秒的延遲后,它會將 #x 片段添加到頁面 URL 的末尾。為了確保在執(zhí)行 JavaScript 之前加載包含注入的注釋,延遲是必要的。這會導致瀏覽器將焦點放在 ID 為“x”的元素上,這是我們在注釋中創(chuàng)建的表單。然后,onfocus 事件處理程序調(diào)用 print() 函數(shù)。