Pull to refresh

Comments 27

Я старался писать путем просто выбрасывания фактов без воды, иначе статья вышла бы раза в три больше и людям было бы лень читать. Сейчас же в каждой строчке сразу по несколько шагов, если что не понятно в комментариях с радостью уточню.
Обожаю наблюдать, как неуловимый™ Хомяков находит довольно серьёзные дыры, его никто не хочет всерьёз воспринимать в Баунти, он сливает эксплойты в паблик и у всего white-hat сообщества натуральный бугурт. Цикличная ситуация, очередной цикл дождались :)
> неуловимый™

Вспомнился анекдот про неуловимого Джо, Я так больше не играю :(
У меня заработало, только если пользователь изначально не залоинен на фейсбуке.
Если же он залогинен под своим аккаунтом, то при попытке скрытого перелогина запрос блокируется:

Refused to display 'https://www.facebook.com/common/invalid_request.php' in a frame because it set 'X-Frame-Options' to 'DENY'
>У меня заработало, только если пользователь изначально не залоинен на фейсбуке.

Да, но разлогинеть не сложно. Достаточно знать токен (любой) этой жертвы (можно слить с других сайтов) и загрузить logout.php?access_token=123

Ошибка, что вы написали, не имеет никакого значения. Это отказ браузера показывать страницу с результатом, на работу CSRF никак не влияет.
А как можно защититься простым пользователям? Через полное отключение всех социальных плагинов (скажем, в AdBlock)?
Даже NoScript врядли поможет. Можно попробывать анти CSRF плагины но это все только для FF.
Очень сложно и практически невозможно понять если не знаешь каких-то терминов.

«фиксируем сессию на фейсбуке» — что это значит вообще?

«signed_request. СР это подписанный запрос с помощью client_secret и создан он… непонятно зачем.» — так что такое «CP»? Почему именно СР? Использование аббревиатуры без расшифровки очень печалит. Попробуйте представить что вы не значете что такое СР и попытайтесь понять абзац. У меня не получилось.
фиксируем сессию на фейсбуке

Авторизируемся на фб через iframe, приведенный в начале?

так что такое «CP»?

signed_request == SR (en) == СР (ru)

И правда действительно слишком сложным языком описаны на самом деле простые вещи.
Никогда бы не догадался, что SR == СР. Спасибо.
Помоему когда пишут сокращение без объяснение то по дефолту имеется слова чуть раньше (Signed Request).

Фиксируем сессию — понятно любому знакомому с атакой, фиксации сессии. Ну и звучит же очевидно.

Термины объяснены в первой статье, типа.
Обычно сокращения имеют прямую связь с тем, что они собственно сокращают. В вашем случае связь весьма неочевидная. Можно было ещё сократить ЫК, тоже подобный подход.

Фиксируем сессию — понятно любому знакомому с атакой, фиксации сессии. Ну и звучит же очевидно.

«Фиксируем сессию — это фиксируем сессию». Это очевидно, но ни капельки не понятно.

Термины объяснены в первой статье, типа.

Первая статья закрыта, типа.
Блин и правда была закрыта. Простите меня!
В яндекс баунти отвечают минимум через месяц. Я посылал баги в декабре, а мне только в конце января ответили. (И присудили награду в 10к руб.)
Ага или пишут идиотские отписки про «неиспользуемый браузер» на репорты XSSок, видимо штрафуют за уязвимости, обедов лишают… Причем какие-то еще и фиксят после репортов (не все перепроверял).

(как быстро коммент уйдет в минус?)
+1, мне ответили через 21 день. Даже фейсбук быстрее отвечает, а у них объем говнорепортов колоссальный.
Они всегда так отвечают. А переписка с ними может затянуться настолько долго, что пропадает все желание)
Ну и заодно там где загружен родные sdk можно скриптом вытянуть acces_token
и тихо слить все данные
Да, это тоже. signed_request + access_token = доступ вообще ко всему
А для получения токена пользователь должен разрешить доступ для какого-то фб приложения или нет?
если пользователь уже залогинен на странице то нет.
например в консоли хрома можно выполнить

VK._session.sid
или
FB.getAccessToken()

то будет отображен AccessToken
(если доступ авторизован то токен утекет автоматически)
пока что это вариант использовать клиентскую авторизацию для последующей серверной авторизации
Все баги рабочие и исправлены не будут. можно тестить
OAuth — кровавое месиво из подтверждения identity (это ад) и расшаривания прав (тут всё более-менее, хотя под контроль пользователя из провайдеров более-менее отдаёт на ручной контроль прав доступа только Facebook). Увы, ничего более-менее стандартного и готового нет. OA2 только добавляет новых workflow, при этом не предоставляя ни нормальной документации, ни унифицируя ничего.
А пока там все соберутся и будут использовать oz (или ещё что) ещё не один год пройдёт.
Пока гром не грянет (как тот коммит в rails), мужики даже креститься не станут.
Sign up to leave a comment.

Articles

Change theme settings