我们公司的安全扫描似乎一直挂在swfobject.js中的这个outerHTML属性上:
el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
我熟悉与innerHTML相关的XSS漏洞,但是你能给我一些在这种情况下如何利用outerHTML的例子吗?我想知道扫描是否产生误报 - 我认为swfobject背后的团队会解决所有XSS问题。
谢谢!
答案 0 :(得分:2)
如果您了解innerHTML
和outerHTML
的工作原理,您可以自己回答问题:
innerHTML
将el
节点的所有childNodes
替换为已从指定字符串值解析的NodeList
。outerHTML
将节点el
本身替换为从指定的字符串值解析的 NodeList
。示例:如果el
是以下示例中的内部div
:
<div id="outer"><div id="inner"> … </div></div>
然后将innerHTML
和outerHTML
与<b>foobar</b>
设置为:
innerHTML
:
<div id="outer"><div id="inner"><b>foobar</b></div></div>
outerHTML
:
<div id="outer"><b>foobar</b></div>
因此,使用innerHTML
还是outerHTML
并不重要。两者都容易受到XSS的攻击。</ p>