可別小看了XSS漏洞
可別小看了XSS漏洞
對於初了解xss漏洞的人來說,XSS漏洞的危害就是獲取受害者的cookie,來進行 『cookie劫持』。
今天就總結一下XSS漏洞的危害性,望安全人員不要輕視,開發人員不要忽視
XSS漏洞簡介
XSS攻擊通常指黑客通過「HTML注入」篡改網頁,插入惡意腳本,從而使用戶瀏覽網頁時控制用戶瀏覽器的一種攻擊。
例如:
<p>a</p>
如果我能控制a,將a改為</p><script>alert("1")</script><p>
,這個地方的程式碼就會變成這樣:
<p></p>
<script>alert("1")</script>
<p></p>
就會執行script腳本,這麼想我們是不是能篡改網頁html文件,來讓他執行我們的語句?
第一 cookie劫持:
如果網站存在XSS漏洞,可以通過XSS漏洞來獲取用戶的cookie
危害:利用用戶的cookie來進行登錄用戶後台
payload:<script>alert(document.cookie)</script>
第二 構造GET或POST請求:
黑客可以通過XSS漏洞,來使得用戶執行GET或POST請求
危害:可以控制用戶刪除數據或者發送郵件
例如GET payload:
<script>window.location.href='////www.xxx.com/index.php?type=delete&id=1';</script>
POST請求 需要線創建一個表單,然後讓表單自動提交資訊。
第三 釣魚
我們從一開始的XSS漏洞簡介可知道,XSS漏洞可以讓我們對網頁進行篡改,如果黑客在登錄框的地方把原來的登錄框隱藏一下,自己偽造一個登錄框,用戶在登錄框上輸入帳號密碼就會傳送到黑客的伺服器上
危害:獲取用戶帳號密碼
第四 識別用戶瀏覽器
通過script語句能獲得用戶的瀏覽器資訊
危害:獲取瀏覽器資訊,利用瀏覽器漏洞進行攻擊
payload:<script>alert(navigator.userAgent)</script>
第五 識別用戶安裝的軟體
通過script語句能夠識別用戶安裝的軟體
危害:獲取用戶軟體資訊,利用軟體漏洞進行攻擊
如下程式碼:
try{
var Obj=new ActiveXObject('XunLeiBHO.ThunderIEhelper');
}
catch(e){
//異常
}
第六 獲得用戶真實ip地址
藉助第三方軟體,比如客戶端安裝了Java(JRE)環境,那麼可以通過調用JavaApplet介面獲取客戶端本地IP
第七 判斷用戶是否訪問某個網站
style的visited屬性,訪問過的鏈接,顏色會變化.
第八 蠕蟲
用戶之間發生交互行為的頁面,如果存在存儲型XSS,則容易發起XSS Worm攻擊.
如:2003年的衝擊波蠕蟲,利用的是Windows的RPC遠程溢出漏洞
還有百度空間蠕蟲,可自行百度搜一下
XSS繞過方式
- JS編碼
- HTML編碼
- URL編碼
- 長度繞過
- 標籤繞過(標籤閉合,標籤優先性)
- window.name利用
- Flash XSS
- 利用Javascript開發框架漏洞
- 利用瀏覽器差異
- 關鍵字、函數
XSS防護方法
- 過濾輸入的數據,非法字元
- 對數據進行編碼轉換
- 添加HttpOnly
- 輸入合法性檢查
- 白名單過濾標籤
- DOM XSS防禦