1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-mst-sec-lecture-notes

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
漏洞篇 逻辑漏洞.md 4.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 00:48 d9e190e

Логические уязвимости

Преподаватель: gh0stkey (https://www.zhihu.com/people/gh0stkey/answers)

Автор: Летающий дракон (https://github.com/)

Лицензия: CC BY-NC-SA 4.0 (http://creativecommons.org/licenses/by-nc-sa/4.0/)

Восстановление любого пароля

Это пример с платформы «Тяньтянь».

Сначала зарегистрируйте аккаунт, а затем восстановите пароль.

Мы получаем шестизначный проверочный код. Если на сайте не установлены ограничения по частоте или максимальному количеству попыток, мы можем попытаться взломать его.

Затем перехватываем пакет с отправленным мобильным проверочным кодом и видим, что в нём нет изображения с проверочным кодом:

Отправляем его в Burp Intruder:

Добавляем только флаг к checkPhoneCode, устанавливаем тип словаря как числовой и диапазон от 000 000 до 999 999. После взлома мы обнаруживаем пакет, который отличается от остальных.

После отправки этого пакета можно сбросить пароль.

Регистрация на любой номер телефона

Вот страница регистрации на одном из сайтов:

Мы имитируем регистрацию и обнаруживаем, что проверочный код состоит из четырёх цифр:

Перехватываем пакет при регистрации:

Устанавливаем словарь на четыре цифры от 0000 до 9999 и взламываем:

Получаем результат!

Активация любого электронного адреса

Цель — www.vobao.com.

Сначала регистрируемся, затем сразу выходим и восстанавливаем пароль. Мы видим, что это проверка электронной почты.

Проверяем содержимое письма:

Обнаруживаем vstr, который совпадает с URL на странице восстановления пароля.

Тогда vud должен выполнять функцию проверочного кода. Если мы не заполним vud и попытаемся получить доступ, появится сообщение о том, что действие не выполнено. Тогда мы сможем подтвердить, что это проверочный код.

Этот vud выглядит как MD5, но на самом деле это случайный код. Затем мы пытаемся зарегистрироваться с другим адресом электронной почты и восстановить пароль:

Можно увидеть, что vstr отличается, и vud тоже. Но что, если мы объединим vud из второго электронного адреса с vstr из первого? Поскольку vstr первого электронного адреса известен (мы можем получить его через URL страницы восстановления пароля), мы можем создать следующее:

Если отправить этот запрос, то он будет успешным.

Предположим, что первый электронный адрес принадлежит другому человеку, и мы не можем просматривать его содержимое, но у нас есть контроль над вторым электронным адресом. Тогда мы можем использовать второй электронный адрес для сброса пароля первого. Можно видеть, что основная причина этой уязвимости заключается в том, что не проводится различие между проверочными кодами разных пользователей. Здесь vstr служит идентификатором пользователя, а vud — проверочным кодом электронной почты.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-mst-sec-lecture-notes.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-mst-sec-lecture-notes.git
oschina-mirror
wizardforcel-mst-sec-lecture-notes
wizardforcel-mst-sec-lecture-notes
master