在前些章節 (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和...