Web安全系列(三) XSS 攻擊高階(挖掘漏洞)

2021-09-11 13:16:18 字數 1669 閱讀 8033

在前些章節 (web安全系列(一):xss 攻擊基礎及原理)以及(web安全系列(二):xss 攻擊高階(初探 xss payload))中,我詳細介紹了 xss 形成的原理以及 xss 攻擊的分類,並且編寫了乙個小栗子來展示出xss payload的危害。

目前來說,xss 的漏洞型別主要分為三類:反射型、儲存型、dom型,在本篇文章當中會以permeate生態測試系統為例,分析**功能,引導攻擊思路,幫助讀者能夠快速找出**可能存在的漏洞。

現在筆者需要進行手工xss漏洞挖掘,在手工挖掘之前筆者需要先逛逛**有哪些功能點,如下圖是permeate的介面

而在我們測試的首頁也有**搜尋功能,因此我們可以從搜尋功能著手測試,嘗試是否可以進行 xss payload,我們先輸入乙個簡單的 payload 進行測試,測試**為

我們進行嘗試:

先輸入搜尋內容

再進行搜尋

我們發現,google chrome 居然直接阻止了該事件,payload 也沒有進行觸發,這裡我就需要跟讀者說一下了,chrome 瀏覽器的核心自帶 xss 篩選器,對於反射型 xss 會自動進行攔截,所以盡量不要用 chrome 進行測試,我們改用火狐繼續進行測試:

果然,直接觸發了我們的 payload 。

此 payload 被觸發,說明我們找到了乙個反射型 xss 的漏洞,當然,這種漏洞非常初級,絕大部分**都進行了過濾操作,再加上隨著瀏覽器功能越來越強大,瀏覽器自帶的 xss 篩選器變得更加智慧型,這種漏洞會越來越少見,下面我將會測試更為常見的儲存型 xss 的挖掘與並介紹如何繞過。

儲存型 xss 的攻擊**是存在伺服器端,因此,我們需要找到該**將資料儲存到後端的功能,我們對此**有了一定了解,會發現permeate擁有發帖和回帖功能,這正是 web 端和後台進行溝通的渠道,所有帖子資訊都會存在服務端,有了這些資訊,我們可以進入板塊,進行發帖操作:

進入發帖介面:

我們現在標題和內容裡填上初級的 payload :123

我們進行發表操作:

頁面直接執行了我們的 payload,我們點完確定,檢視列表:

我們進入帖子內部,會發現如下場景:

很明顯,文章主體部分的 payload 並沒有執行,這到底是怎麼一回事呢?

為什麼標題內容可以 payload,主體內容不能 payload 呢,我們開啟控制台,切到network再來發一篇帖子看看:

我們可以看到對應的內容已經經過轉義,轉義分為兩種,前端轉義和後端轉義,如果是後端轉義通常我們就不需要測試下去了,因為我們不知道服務端的內部**,如果是前端轉義則可以繞過這個限制。

那麼該如何操作呢?

我們拷貝出 url

找到其中的 title 和 content,將 content 的內容替換為 title 的內容:

替換完成之後,將此內容複製到終端進行執行:

payload 執行了兩次,內容也被攻擊了。

看到此處說明我們已經成功繞過前端xss過濾器,直接對內容進行修改,所以後端的轉義有時候也很有必要。

挖掘漏洞是乙個複雜的過程,手工挖掘不失為一種可靠的方式,但是手動挖掘效率低下,有時還要看運氣,目前已經出現很多自動檢測 xss 漏洞的工具以及平台,大大提高發現漏洞的效率,我將在稍後的章節中介紹一些工具以及如何防禦 xss。

Web安全系列(三) XSS 攻擊高階(挖掘漏洞)

在前些章節 web安全系列 一 xss 攻擊基礎及原理 以及 web安全系列 二 xss 攻擊高階 初探 xss payload 中,我詳細介紹了 xss 形成的原理以及 xss 攻擊的分類,並且編寫了乙個小栗子來展示出xss payload的危害。目前來說,xss 的漏洞型別主要分為三類 反射型 ...

web安全 XSS攻擊

xss xss,即為 cross site scripting 中文名為跨站指令碼 不使用css縮寫是為了與層疊樣式表區分 是發生在目標使用者的瀏覽器層面上的,當渲染dom樹的過程成執行了不在預期內的js 時,就發生了xss攻擊。xss分為反射型xss,儲存型xss和dom xss 1 反射型xss...

web安全之xss攻擊

xss攻擊的全稱是cross site scripting xss 攻擊,是一種注入式攻擊。基本的做法是把惡意 注入到目標 由於瀏覽器在開啟目標 的時候並不知道哪些指令碼是惡意的,所以瀏覽器會無差別執行惡意指令碼,從而導致使用者資訊和一些敏感資訊被盜取和洩漏。xss一般分為兩種型別,持久化的xss和...