溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DVWA篇之XSS反射型

發(fā)布時(shí)間:2020-06-28 13:39:40 來(lái)源:網(wǎng)絡(luò) 閱讀:3389 作者:菜鵝小生 欄目:安全技術(shù)

1、什么是XSS

    XSS***全稱跨站腳本***,XSS是一種在web應(yīng)用中的計(jì)算機(jī)安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁(yè)面中。

XSS***分成兩類:

(1)、一類是來(lái)自內(nèi)部的***,主要指的是利用程序自身的漏洞,構(gòu)造跨站語(yǔ)句。
(2)、另一類則是來(lái)自外部的***,主要指的自己構(gòu)造XSS跨站漏洞網(wǎng)頁(yè)或者尋找非目標(biāo)機(jī)以外的有跨站漏洞的網(wǎng)頁(yè)。
如當(dāng)我們要***一個(gè)站點(diǎn),我們自己構(gòu)造一個(gè)有跨站漏洞的網(wǎng)頁(yè),然后構(gòu)造跨站語(yǔ)句,通過(guò)結(jié)合其它技術(shù),如社會(huì)工程學(xué)等,欺騙目標(biāo)服務(wù)器的管理員打開(kāi)。

XSS分為:存儲(chǔ)型和反射型

    存儲(chǔ)型XSS:存儲(chǔ)型XSS,持久化,代碼是存儲(chǔ)在服務(wù)器中的,如在個(gè)人信息或發(fā)表文章等地方,加入代碼,如果沒(méi)有過(guò)濾或過(guò)濾不嚴(yán),那么這些代碼將儲(chǔ)存到服務(wù)器中。這種XSS比較危險(xiǎn),容易造成蠕蟲,盜竊cookie(雖然還有種DOM型XSS 但是也還是包括在存儲(chǔ)型XSS內(nèi))

    反射型XSS:非持久化,需要欺騙用戶自己去點(diǎn)擊鏈接才能觸發(fā)XSS代碼(服務(wù)器中沒(méi)有這樣的頁(yè)面和內(nèi)容) 一般容易出現(xiàn)在搜索頁(yè)面

開(kāi)始我們的實(shí)驗(yàn)

        Low級(jí)別

1、構(gòu)造我們常用的payload:<scrpit>alert(1)</script>

DVWA篇之XSS反射型
獲得彈框。不僅僅要做到***,分析一下原理
2、這里可以直接查看源碼,點(diǎn)擊右下角的view source。查看源碼
DVWA篇之XSS反射型
源碼里存在一個(gè)判斷語(yǔ)句,arrary_key_exists()函數(shù)判斷$_GET的值中是否存在“name”鍵名。并且$_GET[‘name’]的值是不是不為空,滿足這些條件,直接輸出下面的輸出語(yǔ)句。
這串源碼沒(méi)有特別的地方,不存在其他處理函數(shù),典型的xss可***源碼。所以可以直接用我們的payload***

    Medium級(jí)別

1、嘗試用第一種方法,看看有什么不同
DVWA篇之XSS反射型
發(fā)現(xiàn)我們輸入進(jìn)去的<script></script>標(biāo)簽被過(guò)濾掉了,猜測(cè)利用了什么過(guò)濾函數(shù)。既然它能夠?qū)⑦@個(gè)標(biāo)簽過(guò)濾,我們就構(gòu)造一個(gè)不用這個(gè)標(biāo)簽的payload試一試。
2、構(gòu)造payload:<img src=1 onerror=alert(1)>。
解釋:<img ..>標(biāo)簽是添加一個(gè)圖片,src,指定圖片的url,onerror是指定加載圖片時(shí)如果出現(xiàn)錯(cuò)誤則要執(zhí)行的事件
這里我們的圖片url肯定是錯(cuò)誤的,這個(gè)彈框事件也必定會(huì)執(zhí)行
使用我們的payload***一下試一試。
DVWA篇之XSS反射型
發(fā)生了彈框,可以看出,后臺(tái)處理的時(shí)候應(yīng)該只過(guò)濾了<script>標(biāo)簽
3、我們查看一下源碼:
DVWA篇之XSS反射型
我們可以看到,在將獲取到的name值得時(shí)候,經(jīng)過(guò)str_replace()函數(shù)過(guò)濾,將name值中的<script>標(biāo)簽轉(zhuǎn)化為空。然后在將name值的結(jié)果輸出。
所以當(dāng)我們使用low級(jí)別的payload的時(shí)候我們的<script>標(biāo)簽被過(guò)濾掉。
4、特別注意的是這個(gè)函數(shù)也不太完美,因?yàn)樗鼌^(qū)分大小寫。所以當(dāng)我們使用low級(jí)別中的payload大寫的時(shí)候,一樣可以繞過(guò)它的過(guò)濾。我們?cè)囈幌?br/>Payload:<SCRIPT>alert(1)</SCRIPT>
DVWA篇之XSS反射型
一樣可以彈框,當(dāng)然繞過(guò)的還有很多方式。
處理這樣的paylaod的時(shí)候最好再在前面加一個(gè)strtolower()函數(shù),將傳遞的name值得字符統(tǒng)統(tǒng)改為小寫。這樣就可以不管大小寫都能逃不出去。(只針對(duì)這一個(gè)payload)

    High級(jí)別

1、當(dāng)我們輸入帶有<script>標(biāo)簽的payload的時(shí)候,不管大小寫,過(guò)濾的什么都不剩只有>,這是什么情況,我們查看一下源碼:
DVWA篇之XSS反射型
這里利用了preg_replace()函數(shù),將包含<script的字符,不管大小寫,不管后面跟著1個(gè)或多個(gè)與之相同的字符都轉(zhuǎn)換為空。

2、既然它過(guò)濾這樣的字符串,那我們就用<img >標(biāo)簽。
Payload:<img src=1 onerror=alert(1)>
DVWA篇之XSS反射型
出現(xiàn)了彈框。

    Impossible級(jí)別

1、正如級(jí)別含義,不可能的,這個(gè)很難做到彈框
查看源碼
DVWA篇之XSS反射型
2、里面處理$_GET[‘name’]的值得時(shí)候利用了函數(shù)htmlspecialchars(),將值里面的預(yù)定義函數(shù),都變成html實(shí)體
DVWA篇之XSS反射型
所以我們以上的payload都帶有<>,這個(gè)經(jīng)過(guò)轉(zhuǎn)換之后是不會(huì)起作用的,也就不能夠造成彈框。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI