一、檢測檢測檢測背景
在本篇文章當中會(huì )一permeate生態(tài)測試系統為例,網(wǎng)站網(wǎng)站利用PHP擴展(′;д;`)Taint找出網(wǎng)站的漏(?????)洞漏洞潛在安全漏洞實(shí)踐
二、漏洞簡(jiǎn)介
在實(shí)踐漏洞之前,必須先簡(jiǎn)單介紹一下XSS漏洞,檢測檢測檢測不過(guò)XSS的網(wǎng)站網(wǎng)站相關(guān)概念介紹并不是本文的重點(diǎn),因此不會(huì )過(guò)多細講;
XSS的必須漏洞類(lèi)型主要分為三類(lèi):反射型、存儲型、檢測檢測檢測DOM型
2.1 漏洞成因
XSS的網(wǎng)站網(wǎng)站漏洞主要成因是后??端接收參數時(shí)未經(jīng)過(guò)濾,導致參數改變了HTML的漏洞漏洞結構,如下圖所示
在圖(tu)中可以看到攻擊者的必須參數被原樣放到了HTML代碼當中??,導致原??本的檢測檢測檢測結構被改變,當這份代碼被瀏覽器執行之后,網(wǎng)站網(wǎng)站將執行alert事件。漏洞漏洞
2.2 反射型
反射型XSS的定義是、如果URL地址當中的惡意參數會(huì )直接被輸出到頁(yè)面中,導(╬?益?)致攻擊代碼被觸發(fā),便稱(chēng)之為(?⊿?)反射型XSS,如下圖所示
在圖中可以看到,此處原本是輸入一個(gè)名字??,單實(shí)際傳遞了一個(gè)script標簽,此標簽也被原樣放(′ω`*)到了HTML結構當中,結果script標簽代碼中的代碼被觸發(fā)
存儲型XSS,顧名思義便是惡意參數被存儲起來(lái)了,通常存儲在后端服務(wù)器當中,所以存儲型XSS在URL地址當中不會(huì )包含惡意參數
對于受害者來(lái)說(shuō),很難發(fā)現已經(jīng)被攻擊(◎_◎;)了(le),如下圖存儲型XSS被觸發(fā)
在圖中并沒(méi)有在URL地址當中看到script??代碼
但是攻擊代碼依然被觸發(fā),說(shuō)明攻擊代碼來(lái)自于服務(wù)器,而這個(gè)攻擊代碼確實(shí)是由攻擊者傳遞到服務(wù)器當中去(qu)的。
http:/(⊙_⊙)/permeate.songboy.net/article/1
但當存在存儲型XSS時(shí)??,受害者打開(kāi)此URL,攻(//ω//)擊代碼將會(huì )??被觸發(fā),這種情況下便稱(chēng)之為存儲型XSS漏洞。
2.4 DOM型
DOM型XSS較為特殊,前面反射型XSS和存儲(╬?益?)型XSS都是(′_`)以傳播方式來(lái)區分的,而DO??M型XSS和傳參方式無(wú)關(guān)
而是當開(kāi)發(fā)者做了一些安全防護之后,出現安全問(wèn)題的一種現象
在圖片中,可以看到參數name已經(jīng)使用函數轉義??了,按理說(shuō)此時(shí)將參數傳遞到前端頁(yè)面是??不會(huì )產(chǎn)生XSS漏洞的;
在圖中(′▽?zhuān)?)看到XSS代??(dai)碼已經(jīng)被觸發(fā),這種DOM型XSS相對來(lái)說(shuō)更(′ω`)加隱蔽
所以防御XSS漏洞的不能(?_?;)僅僅依靠后端開(kāi)(′▽?zhuān)?發(fā)者,前端開(kāi)發(fā)者也應當了解XSS漏洞。
三、反射型挖掘
經(jīng)過(guò)上面的原理介紹,相信大家對XSS已經(jīng)有一些了解,現在需要進(jìn)行手工XSS漏洞挖掘,在手工挖掘之前需要先逛逛網(wǎng)站有哪些功能點(diǎn)
如下圖是permヽ(′ー`)ノeate的界面
3.1 思路分析
在知道反射型XSS,是通過(guò)URL地址傳播的,那么就需要思考那些地方會(huì )讓URL地址的參數在頁(yè)面中顯示;
而在首頁(yè)也看見(jiàn)此網(wǎng)站有??搜索功能,因此可以從搜索位置著(zhù)手,可以在搜索位置輸入一個(gè)簡(jiǎn)單的(de)payload,參考如下
<script>alert(12(′ω`)3)</script>
當點(diǎn)擊搜索后,會(huì )自動(dòng)??ヽ(′▽?zhuān)?ノ跳轉到以下URL當中,此時(shí)瀏覽器的URL地址已經(jīng)發(fā)生了變化,URL地址如下:
http://permeate.songboy.net/home/search.php?keywords=<script>alert(123)</script>
搜索的表單是使用了GET傳參,滿(mǎn)足了測試反射型的第一步(bu)要求
3.2 漏洞檢驗
接下來(lái)就需要看看payload有沒(méi)有被觸發(fā),結果(guo)很意外,不但沒(méi)有被觸發(fā)還被瀏覽器所阻止了
這里就需要跟讀者說(shuō)明一下,谷歌內核瀏覽器自帶(′▽?zhuān)?XSS篩選器,所以對于反射型XSS測試,盡量不使用谷歌瀏覽器,建議使用火狐瀏覽器進(jìn)行測試;
3.3 結果分析
現在(zai)將上面的URL地址復制下來(lái),并粘貼到火狐瀏覽器當中,并按下回車(chē),看到效果
此時(shí)payヽ(′▽?zhuān)?ノload已經(jīng)被觸發(fā),說(shuō)明(ming)找到了一個(gè)反射型XSS的漏洞,這種漏洞相對來(lái)說(shuō)非常(chang)初級,隨著(zhù)瀏覽器的XS(╯°□°)╯S篩選器變得更??加智能,這種漏洞也越來(lái)越少,在下面的內容當中將會(huì )提到存儲型XSS挖??掘與( ?ω?)繞過(guò)。
四、存儲型挖掘
現在來(lái)尋找存儲型XS(′_ゝ`)S,存儲型的攻擊代碼是存儲在服務(wù)端,因此需要找出一些會(huì )將表單內容存儲到服務(wù)端的位置
在之前已經(jīng)??對permeate做了一番了解,因此知道permeate擁有發(fā)帖和回帖功能,這些功能正是需要將參ヽ(′▽?zhuān)?ノ數存儲起來(lái)(′;ω;`)并展示的地方。
4.1 發(fā)現漏洞
在首頁(yè)點(diǎn)擊XSS板塊,進(jìn)入到了板塊列表當中
在右下角能看到有一個(gè)發(fā)帖按鈕,點(diǎn)擊發(fā)帖按鈕后,即可進(jìn)入發(fā)帖界面
在permeate滲透測試系統當中,如果要發(fā)表帖子,那么就需要有賬號,這里隨便注冊一個(gè)賬號,注冊過(guò)程就不詳細講解了
4.2 檢驗漏洞
在注冊(??ヮ?)?*:???賬號完成并登陸之后,再次打(da)開(kāi)發(fā)帖頁(yè)面,并在標題處和內容??處都填寫(xiě)payload,???參考內容如下:
<script>alerヽ(′▽?zhuān)?ノt(123)</script>
在標題處和帖子內容┐(′?`)┌中分別填寫(xiě)payload,填寫(xiě)好之后,應與下圖一致
填寫(xiě)好內容之后,點(diǎn)擊下方的發(fā)表按鈕,即可進(jìn)行發(fā)帖,發(fā)帖成功會(huì )彈出一個(gè)提示成功
如果看到這個(gè)彈框,說(shuō)明payload已經(jīng)被執行,點(diǎn)擊確定就可以看到列表的內容
在列表中只顯示標題,所以帖子內容中的payload并沒(méi)有被執行;
4.3 抓包繞過(guò)
現在點(diǎn)擊標題,進(jìn)入帖子詳情頁(yè)面,在(zai)詳情頁(yè)發(fā)現pay??load也只觸發(fā)了一次,而且內容(rong)當中的標簽被直接顯示了出來(lái)
當標簽被直接顯示出??來(lái),這說(shuō)明參數被轉義了;
轉義分為兩種,前端轉義和后端轉義,如果是后端轉義通常會(huì )放棄測試??,如果是(shi)前端轉義則可以繞過(guò)這個(gè)限制;
在這里發(fā)現標題沒(méi)有被轉義,而內容被轉,猜測可能是前端做的轉義,因此可以通過(guò)瀏覽器的審查工具??將數據包拷貝下來(lái);
首先重新打開(kāi)發(fā)帖頁(yè)面,然后在網(wǎng)頁(yè)隨便一個(gè)位置單擊鼠標右鍵->選擇審查元素->切換到network標簽并勾選??Preserve log,
打開(kāi)網(wǎng)絡(luò )并勾選Preserve log的目的是讓發(fā)表帖子之后
能在網(wǎng)絡(luò )請求中找到該記錄,現在可以填寫(xiě)新的payload
點(diǎn)擊發(fā)表按鈕之后,可以在控制臺中找到剛才的post請求
從請求中可以看出,這個(gè)數據發(fā)出去就已經(jīng)被轉義了
4.4 編碼替換
當確定這個(gè)地方存在前端做了轉義處理,如果后端???沒(méi)有做處理,
就可以繞過(guò)它,現在將請求復制出來(lái),然后改變里面的數據
復制出來(lái)的數據如下
curl'http://permeate.songboy.net/home/_fatie(╯°□°)╯︵ ┻━┻.php?bk=6&zt=0'-H'Connection:(′Д` )keep-alive??9;-H'Cache-Control:max-age=0'-H'Origin:http://permeate.songboy.net'-H'Upgrade-Insecure-Re??quests:1'-H'Content-T??ype:application/x-www-form-urlencoded'-H'User-Agent:Mozi??lla/5.??0(Macintosh;IntelMacOSX10_13_4)AppleWebKit/537.36(KHTML,likeGecko)Chrome/68.0.3440.106Safari/537.3(′?`*)6'-H'??;Accept??:text/html,application/xhtml+xml,application/xml;q=0??.9,image/webp,image/apng,*/*;q=0.8'-H'Referer:http://permeate.songboy(′_ゝ`).net/home/fatie.php?bk=6'-H'Accept-Encoding(′Д` ):gzip,deflate(╬?益?)9;-H'Accept-Language:zh-CN,zh;q=??0.9,en;q=0.8'-H'Cookie:__cfduid=defc970ef7081e30aedd761da5762b1891532003579;UM_distinctid(╯°□°)╯︵ ┻━┻=1655a61a23343c-03f0904540a333-34657908-1fa400-1655a61a234323;PHPSESSID=rufhm074(?⊿?)1qfv55cpfnc80k1g4l'--data'??;csrf_token=3908&bk=6&??title=222%3Cscript+%3Ealert%28123%29%3C%2Fscript%3E&content=%3Cp%3E222%26lt%3Bscript+%26gt%3Balert%28123%29%26lt%3B%2Fscript%26gt%3B%3C%??2Fp%3E'--compressed
找到參數中的title和content參數(shu)值,將title的參數值復制下來(lái),然后替換content的參數值,替換后的內容如下
curl'http://permeate.songboy.net/home/_fatie.php?bk=6??&(′_`)amp;zt=0'-H'Connection:keep-alivヾ(′▽?zhuān)??e????9;-H'Cache-C??ontrol:max-age=0'??;-H'Origin:http://permeate.songboy.net'-H'Upgrade-Inse??cure(°o°)-Requests:1'-H'??;Content-Type:application/x-www-form-urlencoded'-H'User-Agent:Mozilla/5ヽ(′ー`)ノ.0(Macintosh;IntelMacOSX10_13_4)AppleWebKit/537.36(KHTML,likeGec??ko)Chrome/68.0.3440.106Safari/537.36'-H'Acceptヽ(′?`)ノ:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'-H'Referer:http://permeate.songboy.net/home/faヽ(′ー`)ノtie.php???(/ω\)bk=6'-H'Accept-Encodiヽ(′ー`)ノng:gzip,deflate'-H'Accept-Language:zh(′-ι_-`)-CN,zh;q=0.9,en;q=0.8(°ロ°) !'-H'Cookie:__cfduid=defc970ef7081e30a(′?`*)edd761da5762b1891532003579;??UM_distinctid=1655a61a23343c-03f090??4540a333-34657908-1fa400-1655a61a234323;??PHPSESSID=rufhm0741qfv55cpfnc80k1g4l'--data'csrf_token=3908&bk=6&title=222%3Cscript+%3Ealert%28123%29%3C%2Fscript%3E&conten??t=222%3Cscript+%3Ealert%28123%29%3C%2Fscript%3E'--compressed
替換完成之后,將此內容復制到終端當中(如果用的是windows操作系統,可以下載一個(gè)cmder),然后按下回車(chē)鍵
4.5 結果分析
打開(kāi)詳情??頁(yè),被彈了兩次提示框,說(shuō)明標題和內容當中的payload都被觸發(fā),并且在控制臺當中也可以看到script變成(′?_?`)了DOM節點(diǎn),而不是文本??展現出來(lái)
看到此處說(shuō)明已經(jīng)(′?`)成功繞過(guò)前端XSS過(guò)濾器
版權聲明:本文內容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻,該文觀(guān)點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不??擁有所有權,不承擔相關(guān)法??律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規的內容, 請發(fā)送郵件至 181747ヽ(′?`)ノ[email protected] 舉報,一經(jīng)查實(shí),本站將立刻刪除。


網(wǎng)站二維碼
導航
電話(huà)
短信
咨詢(xún)
地圖
分享