[Перевод] Полный захват аккаунта в одной из крупнейших компаний электронной коммерции

Привет всем,

Сегодня я хочу поделиться своим опытом обнаружения уязвимости, позволяющей захватить учетную запись (ATO) с помощью отравления ссылки для сброса пароля. Во время участия в программе, охватывающей миллионы пользователей — крупной компании в сфере электронной коммерции, которую я буду называть redacted.com — я тестировал функции аутентификации и наткнулся на функцию «Запрос на сброс пароля». Эта функция предлагает пользователям ввести адрес электронной почты для получения ссылки для сброса пароля.

Когда я начал исследовать эту программу, я находился в аэропорту в ожидании рейса. Имея немного свободного времени, я решил углубиться в вопросы безопасности программы. Если бы я знал, что эта неформальная сессия тестирования приведет к важному открытию! :))

c0b1ea903bf0b4fa44ef1afa9ce750e6.png

Начнем нашу историю, SQL-инъекция

Поскольку существует параметр электронной почты, это указывает на наличие базы данных на стороне сервера для обработки этих данных, что делает параметр email лучшим местом для тестирования на уязвимость SQL-инъекции.

Команда для выполнения тестирования с помощью SQLMap:

sqlmap -r testsql --dbs --tamper=space2comment,space2morehash --batch

62eb4cc5265dee38ee5ad116496f84cd.png

Брутфорс параметров:

Во время тестирования мое внимание привлекла интересная деталь: все параметры в теле запроса начинались с префикса dwfrm_requestpassword. Этот уникальный префикс вызвал у меня любопытство, и я подумал: «Что если попробовать перебрать эти параметры одним запросом?» Это подтолкнуло меня к экспериментам, чтобы выяснить, может ли манипуляция параметрами привести к неожиданному поведению или выявить потенциальные уязвимости.

7619acce97ad9cf23a738efdfea3ae79.png

Сначала я загрузил список параметров из базы данных Arjun по следующей ссылке: https://raw.githubusercontent.com/s0md3v/Arjun/refs/heads/master/arjun/db/large.txt. Затем я открыл этот список в Sublime Text, чтобы начать настраивать его в соответствии с моим подходом к тестированию.

0e28d7cc716dc02848f4dfe46002478e.png

После открытия списка параметров в Sublime Text я использовал регулярное выражение для замены, чтобы добавить префикс dwfrm_requestpassword_ в начале каждой строки. Для этого я использовал символ ^, чтобы указать начало строки, и добавил данный префикс. Также я добавил =evil в конце каждого параметра, используя символ $ для обозначения конца строки, как показано на скриншоте. Эта настройка позволяет мне тестировать различные комбинации параметров с общим префиксом и суффиксом, что потенциально может выявить интересные поведенческие особенности системы.

fc8d8da8296ce86898e8e4d8579f0e8b.png

Я скопировал все измененные параметры из Sublime Text и вставил их построчно в инструмент Repeater в Burp Suite. Затем я нажал «Change Body Encoding», чтобы убедиться, что параметры были правильно отформатированы для запроса. Эта настройка позволила мне систематически тестировать каждый параметр в Burp, что упростило анализ ответов и проверку на наличие необычного поведения или уязвимостей.

7c90e227b02968c5cd36d3ab2afc1da6.png

После отправки измененных запросов в Burp и анализа ответов я получил письмо с ссылкой для сброса пароля. К моему удивлению, ссылка содержала мой пользовательский путь /evil. Затем я отфильтровал и протестировал различные параметры и в конечном итоге обнаружил, что уязвимым параметром оказался dwfrm_requestpassword_return. Этот параметр позволил мне внедрить пользовательские значения в ссылку для сброса, выявив потенциальную уязвимость открытого перенаправления или инъекции.

11aec5598b215605be77866ee9d205cd.png

Я изменил значение уязвимого параметра dwfrm_requestpassword_return на свою ссылку Burp Collaborator и отправил измененную ссылку для сброса жертве. Как видно, когда жертва кликает на эту «волшебную ссылку», вместо того чтобы просто войти в систему, она перенаправляется на мой сервер Collaborator. Эта настройка позволяет мне захватывать учетные данные жертвы или информацию о сессии, демонстрируя потенциальную уязвимость открытого перенаправления или кражи учетных данных.

Мы в телеграме

Habrahabr.ru прочитано 6156 раз