Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2017, 10:56
Аватар для brizing
Интересующийся
Отправить личное сообщение для brizing Посмотреть профиль Найти все сообщения от brizing
 
Регистрация: 08.02.2014
Сообщений: 23

Создать свой объект document
Доброе утро.

Для конспирации хочу неявно обратиться к document.cookie.
Это можно сделать с помощью JSfuck. Но пока этот способ отложим.

Я посмотрел на document.__proto__, судя по всему, document создан из объекта HTMLDocument, и там есть свойство cookie.
http://i.imgur.com/05mLc5x.png
Можно как-то обратиться к кукам через конструктор HTMLDocument?
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2017, 13:00
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

вы xss нашли? хотите куки воровать?
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2017, 13:14
Аватар для brizing
Интересующийся
Отправить личное сообщение для brizing Посмотреть профиль Найти все сообщения от brizing
 
Регистрация: 08.02.2014
Сообщений: 23

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, защита будет почти как у дюрекс.

Последний раз редактировалось brizing, 04.06.2017 в 13:19.
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2017, 13:17
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Ну через document.createYYYYY() можно создать ифрейм у которого есть экземпляр HTMLXXXXX(), который можно получить но топикстартер явно гвозди микроскопом забивает. И совсем непонятно зачем ему это нужно.
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2017, 17:01
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

console.log( Object.getOwnPropertyDescriptor(Document.prototype, 'cookie').get.call(document) );
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2017, 17:34
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Сообщение от Rise
MallSerg, так это разные окна между ними даже идентичные конструкторы не будут равны.
Именно. основная страница и страница в ифрейме будут исполнятся в разных контекстах и ни одна из страниц не сможет отловить манипуляций с куками на другой странице. а строка с куками будет одинаковой на окнах с одного домена. т.е. читать и изменять будет можно а перехватить чтение или запись будет нельзя.
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2017, 18:12
Аватар для brizing
Интересующийся
Отправить личное сообщение для brizing Посмотреть профиль Найти все сообщения от brizing
 
Регистрация: 08.02.2014
Сообщений: 23

Всем спасибо.
Ответить с цитированием
  #8 (permalink)  
Старый 04.06.2017, 19:56
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

console.log(
   (Object.getOwnPropertyDescriptor(Document.prototype, 'cookie') || Object.getOwnPropertyDescriptor(HTMLDocument.prototype, '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 в 19:59.
Ответить с цитированием
  #9 (permalink)  
Старый 04.06.2017, 20:36
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Rise, У хромовых, по всей видимости, наследуется в HTMLDocument от Document, а в FF - сразу в HTMLDocument лежит.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать объект со своими условиями if jtag Общие вопросы Javascript 4 21.02.2016 13:12
ProtoBuf Js Создать объект из proto файла Suharik Prototype & script.aculo.us 2 15.08.2014 13:20
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
Создать объект из строчек Hagrael Events/DOM/Window 16 09.07.2010 10:25
Создать объект динамически Bajjy Общие вопросы Javascript 12 26.09.2008 01:06