對于初了解xss漏洞的人來說,XSS漏洞的危害就是獲取受害者的cookie,來進行 ‘cookie劫持’。

今天就總結一下XSS漏洞的危害性,望安全人員不要輕視,開發人員不要忽視

XSS漏洞簡介

XSS攻擊通常指黑客通過“HTML注入”篡改網頁,插入惡意腳本,從而使用戶瀏覽網頁時控制用戶瀏覽器的一種攻擊。

例如:

a

如果我能控制a,將a改為alert("1")

,這個地方的代碼就會變成這樣:

alert("1") 

就會執行script腳本,這么想我們是不是能篡改網頁html文件,來讓他執行我們的語句?

第一 cookie劫持:

如果網站存在XSS漏洞,可以通過XSS漏洞來獲取用戶的cookie

危害:利用用戶的cookie來進行登錄用戶后臺

payload:alert(document.cookie)

第二 構造GET或POST請求:

黑客可以通過XSS漏洞,來使得用戶執行GET或POST請求

危害:可以控制用戶刪除數據或者發送郵件

例如GET payload:

window.location.href='////www.xxx.com/index.php?type=delete&id=1';

POST請求 需要線創建一個表單,然后讓表單自動提交信息。

第三 釣魚

我們從一開始的XSS漏洞簡介可知道,XSS漏洞可以讓我們對網頁進行篡改,如果黑客在登錄框的地方把原來的登錄框隱藏一下,自己偽造一個登錄框,用戶在登錄框上輸入賬號密碼就會傳送到黑客的服務器上

危害:獲取用戶賬號密碼

第四 識別用戶瀏覽器

通過script語句能獲得用戶的瀏覽器信息

危害:獲取瀏覽器信息,利用瀏覽器漏洞進行攻擊

payload:alert(navigator.userAgent)

第五 識別用戶安裝的軟件

通過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防御