天天看點

2、XSS繞過姿勢彙總

一、更換JS引入方式

正常情況下,執行js代碼有三種方法:

1、行間式

<div onclick="alert('yea...這樣子可以執行JS哦')"></div>
<a href="javascript:alert('執行JS代碼但不跳轉');">點我</a>
<a href="javascript:void(0)" onclick="alert('點選執行JS代碼');">再來點我啊</a>
           

2、外鍊式

3、嵌入式

<script>
        alert('js hello world!');//彈窗
   </script>
           

在某些情況下,web應用對JavaScript的關鍵字做了過濾時,就可以通過更換引用方式來實作JS代碼的執行。

二、通過事件引入JS代碼

常用事件:

  • onchange :當HTML 元素已被改變時執行JS
  • onclick: 當使用者點選了 HTML 元素時執行JS
  • onmouseover: 當使用者把滑鼠移動到 HTML 元素上時執行JS
  • onmouseout : 當使用者把滑鼠移開 HTML 元素時執行JS
  • onkeydown: 當使用者按下鍵盤按鍵時執行JS
  • onload:當浏覽器已經完成頁面加載時執行JS
  • onerror: 當執行錯誤時加載JS代碼

通過事件執行JS代碼是一個不錯的選擇,但是一些特殊事件往往會被過濾,是以還得加上其他方法繞過。

三、面對輸入過濾時的繞過姿勢

常用方法:

  • 大小寫繞過
  • 雙寫繞過
  • 使用編碼:如HTML實體編碼、URL編碼、JS編碼等
  • 閉合HTML标繞過