Просмотр полной версии : Создать свой объект document
Доброе утро.
Для конспирации хочу неявно обратиться к document.cookie.
Это можно сделать с помощью JSfuck. Но пока этот способ отложим.
Я посмотрел на document.__proto__, судя по всему, document создан из объекта HTMLDocument, и там есть свойство cookie.
http://i.imgur.com/05mLc5x.png
Можно как-то обратиться к кукам через конструктор HTMLDocument?
вы xss нашли? хотите куки воровать? :blink:
Rise, точно, конструктора нет.
Посмотрим-ка сюда: http://i.imgur.com/r9GDO4I.png
"TypeError: Illegal invocation" - ошибка возникает когда идёт вызов ф-ии без указания правильного this, например ф-ия из scope без самого scope, log без console, alert без window и т.п. (источник: https://toster.ru/q/268947)
Значит, мы можем позвонить кукам и передать правильный this?
Типа так:
HTMLDocument.prototype.cookie.call(правиль ый_this)
Не?
j0hnik, с сервера в куки прилетает ключ, а в JS этот ключ дешифруется и если все ок - код выполняется дальше. Благо, код большой, и если спрятать место, в котором используются document.cookie, защита будет почти как у дюрекс.
MallSerg
04.06.2017, 13:17
Ну через document.createYYYYY() можно создать ифрейм у которого есть экземпляр HTMLXXXXX(), который можно получить но топикстартер явно гвозди микроскопом забивает. И совсем непонятно зачем ему это нужно.
ruslan_mart
04.06.2017, 17:01
console.log( Object.getOwnPropertyDescriptor(Document.prototype , 'cookie').get.call(document) );
MallSerg
04.06.2017, 17:34
MallSerg, так это разные окна между ними даже идентичные конструкторы не будут равны.
Именно. основная страница и страница в ифрейме будут исполнятся в разных контекстах и ни одна из страниц не сможет отловить манипуляций с куками на другой странице. а строка с куками будет одинаковой на окнах с одного домена. т.е. читать и изменять будет можно а перехватить чтение или запись будет нельзя.
ruslan_mart
04.06.2017, 19:56
console.log(
(Object.getOwnPropertyDescriptor(Document.prototyp e, 'cookie') || Object.getOwnPropertyDescriptor(HTMLDocument.proto type, 'cookie')).get.call(document)
);
var f = obj => Object.getOwnPropertyDescriptor(obj.prototype, 'cookie');
console.log( (f(Document) || f(HTMLDocument)).get.call(document) );
ruslan_mart
04.06.2017, 20:36
Rise, У хромовых, по всей видимости, наследуется в HTMLDocument от Document, а в FF - сразу в HTMLDocument лежит.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot