ReportHackerOne - OpenRedirect

ReportHackerOne - OpenRedirect

wr3dmast3r

Всем привет! С Вами wr3dmast3r, и сегодня мы разберем репорт с HackerOne.

Сегодняшняя уязвимость связана со службой сокращений ссылок в Twitter, что позволяет отправлять сокращенные ссылки домена твиттер на любой вредоносный сайт.

Резюме: Цепочка из двух открытых перенаправлений (на analytics.twitter.com и twitter.com) в сочетании с ideographic full stop позволяет злоумышленнику обойти подход Twitter к блокировке ссылок.

Описание: Твиттер поддерживает список запрещенных доменных имен и запрещает пользователям размещать в нём (как прямые так и косвенные) ссылки на эти домены. Твиттер недавно добавил ddosecrets.com в список запрещенных доменов. Проверка ссылки, выполняемая серверной частью, представляет собой черный ящик (насколько понял, нигде не задокументировано). Тем не менее, я нашел способ победить его, объединив следующие два открытых редиректа (один внутренний, один внешний)

  1. https://twitter.com/login?redirect_after_login=ONLY_TWITTER_SUBDOMAINS_ALLOWED_URL
  2. https://analytics.twitter.com/daa/0/daa_optout_actions?action_id=4&rd=ARBITRARY_URL%3F (обратите внимание на знак вопроса в кодировке URL в конце)

И используя ideographic full stop вместо точки ASCII в вредоносном целевом URL-адресе, можно создать URL-адрес, который перенаправляет на запрещенное доменное имя, но Twitter позволяет пользователям публиковать сообщения в твитах.

Действия по воспроизведению:

  1. Выберите целевой URL, возьмем в качестве примера https://ddosecrets.com.
  2. Замените все вхождения точки ASCII URL-кодированной версией ideographic full stop, т. е. %E3%80%82: https://ddosecrets%E3%80%82com.
  3. URL-кодирование результата шага 2 - https%3A%2F%2Fddosecrets%25E3%2580%2582com.
  4. Добавьте результат шага 3 к https://analytics.twitter.com/daa/0/daa_optout_actions?action_id=4&rd= и добавьте %3F к результату: https://analytics.twitter.com/daa/0/daa_optout_actions ?action_id=4&rd=https%3A%2F%2Fdsecrets%25E3%2580%2582com%3F.
  5. URL-кодирование результата шага 4: https%3A%2F%2Fanalytics.twitter.com%2Fdaa%2F0%2Fdaa_optout_actions%3Faction_id%3D4%26rd%3Dhttps%253A%252F%252Fddosecrets%2525E3%252580%252582com%253F.
  6. Добавьте результат шага 5 к https://twitter.com/login?redirect_after_login=: https://twitter.com/login?redirect_after_login=https%3A%2F%2Fanalytics.twitter.com%2Fdaa%2F0%2Fdaa_optout_actions% 3Faction_id%3D4%26rd%3Dhttps%253A%252F%252Fdsecrets%2525E3%252580%252582com%253F.
  7. Войдите в Twitter и отправьте в Твиттере URL-адрес, полученный в результате шага 6. Публикация твита будет успешной (но этого не должно быть, если проверка ссылки была бы эффективной).
  8. Щелкните вредоносную ссылку в только что опубликованном твите; вы будете перенаправлены на запрещенный домен без показа промежуточной страницы Twitter.

(Если вы не вошли в Twitter, когда нажимаете вредоносную ссылку, вам будет предложено войти в систему, но после этого вы все равно будете перенаправлены на запрещенный домен.)

Дополнение: этот обходной путь также работает в DM.

Трюк так же работает с использованием любой из следующих трех кодовых точек Unicode:

  1. Ideographic Full Stop (%E3%80%82), как указано выше
  2. Fullwidth Full Stop (%EF%BC%8E)
  3. Halfwidth Ideographic Full Stop (%EF%BD%A1).

Для информации, в соответствии с RFC 3490, браузеры рассматривают эти кодовые точки как действительные разделители меток DNS:

Всякий раз, когда точки используются в качестве разделителей, следующие символы ДОЛЖНЫ распознаваться как точки: U+002E (full stop), U+3002 (ideographic full stop), U+FF0E (fullwidth full stop), U+FF61 (halfwidth ideographic full stop).


Не пытайтесь повторить действия описанные в данной статье

Оригинал репорта


С вами был wr3mast3r и RESOLUTE ATTACK, до новых встреч!

Report Page