Pull to refresh

Угон JSON

Reading time1 min
Views5.5K
Original author: Phil Haack
imageВ статье рассматривается метод перехвата данных отдаваемых через JSON с использованием метода "__defineSetter__", Этой уязвимости подвержены сайты JSON с которых: содержит конфиденциальные данные (иначе не спортивно), является валидным JS объектом, отдается по GET запросу. Требования к жертве: браузер поддерживает JavaScript, он включен, поддерживается метод __defineSetter__.

Таким образом, если вы не передаете конфиденциальные данные в JSON, или отдаете их только на POST запрос, ваш сайт не подвержен конкретно этой уязвимости. Автор статьи даже сделал несколько диаграмм в Visio Чтобы наглядно продемонстрировать процесс, итак, приступим.

На первой иллюстрации мы видим как жертва авторизуется на уязвимом сайте и получает «печеньку», которая бережно хранится браузером, всем понятно для чего.

image


После этого, рано или поздно, плохой парень отправляет жертве сообщение (на иллюстрации — email) с ссылкой на видео хомячка играющего на пианино.

image


Но, на самом-то деле, ссылка ведет на сайт плохого парня. Соответственно что происходит: браузер жертвы загружает страницу с сайта плохого парня.

image

На запрошенной странице находится немного JavaScript с переопределением метода __defineSetter__ и ссылка на внешний JavaScript. Когда браузер натыкается на внешний JavaScript, то он отправляет GET запрос, с идентификационными данными на уязвимый сайт, получая в ответ JSON с конфиденциальными данными.

image

Теперь плохой парень имеет доступ к конфиденциальным данным.
Tags:
Hubs:
Total votes 48: ↑44 and ↓4+40
Comments45

Articles