Логические уязвимости
Преподаватель: 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 )