Здравствуй, большая цзя, пора снова практиковаться Это первая реверсивная статья, которой я поделился с тобой. Предыдущие статьи захлопнулись ниже:
Введение в JS, обратный Python Crawler
JS обратный вход в новый список
Говорят, что люди, которые хорошо выглядят, в конце концов становятся еще лучше! Что ж, давайте перейдем к делу, это сайт, который мы собираемся взломать сегодня:no.bebe.com/логин/логин…
анализировать
Я думаю, что необходимо изучить инструменты разработчика Chrome, ведь если вы хотите преуспеть, вы должны сначала отточить свои инструменты. Хорошо поработайте со сканерами, хорошо поработайте над реверс-инжинирингом JS, а инструменты — в первую очередь. Сначала посмотрите на ситуацию с захватом:
Это окончательный запрос на вход, пароль «что?» на самом деле представлен в виде простого текста, а контрольный код — это код подтверждения изображения, поэтому имеется только один параметр шифрования — beibeitoekn. Не торопите шаттл и ищите параметры шифрования, как только увидите их. Во-первых, нажмите на данные запроса всего процесса, потому что иногда параметры шифрования возвращаются в предыдущем ответе на запрос.Например, этот тип чувствительного ко времени токена обычно используется сервером для проверки и отправляется клиенту Сначала выполните POST на сервер, а затем проверьте на сервере
Итак~, в конце концов, наше направление - взломать первый запрос.В мгновение ока в данных формы нет зашифрованных параметров. Обратите внимание, что выше есть ParamsabrПараметры шифрования, главное взломать
трескаться
Это запрос XHR, с которым легко справиться! Нажмите точку останова XHR напрямую:
После повторного входа в систему вы увидите, что запрос был прерван.
Еще несколько кликов вниз, и вы сможете публиковать ключевые моменты
Окончательный результат генерируется функцией m, щелкните по ней и установите точку останова.
Повторно отправить запрос:
Не обращайте внимания на первые несколько функций шифрования, это простое преобразование, фокус находится на l["default"], найдите расположение функции, щелкните по ней.
Далее мы официально введем ссылку вычета.
Продолжайте идти вниз, обратите внимание, чтобы найти ключевые места
Там четко обозначено, какой код нужно вычесть! Вы ненавидите слишком много волос? ? ? Приходите проверить первым! Это параметр, который мы передали в прошлом, запишите его
Затем мы используем код Python для его реализации.
1>>> ts = "username=17775731459&scene=h5_login&rams_device_id=2972225991"
2>>> import hashlib
3>>> res = hashlib.md5(ts.encode("utf-8")).hexdigest()
4>>> res
5 '8afdca35566e68fd7821aed42cab7ae0'
Перейдите к выходу браузера, чтобы просмотреть результаты
Бинго! Это конец?? Рано радоваться, и есть еще один шаг к шифрованию
Такое же ощущение! Это также называется модуль шифрования! Каков результат, пожалуйста, продолжайте смотреть вниз
Структура кода очень похожа!
1 a.HMAC = r.extend()
ХМАК! Это также алгоритм хеширования, Hmac очень похож на обычный алгоритм хеширования. Длина вывода Hmac такая же, как длина исходного алгоритма хеширования. Модуль Hmac, поставляемый с Python, также реализует стандартный алгоритм Hmac.
Для тех же волос я решил отказаться от кода вывода и реализовать его непосредственно на Python. Сначала узнайте входящие параметры и соль.Входящие параметры генерируются на предыдущем шаге.В исходном тексте функции шифрования, вызываемой солью, вы можете увидеть вывод.
На Python реализовано следующее:
1 import hamc
2
3 def c(g, key):
4 return hmac.new(key.encode("utf-8"), msg=g.encode("utf-8"), digestmod=hashlib.sha1).hexdigest()
Зашифрованный результат проверки этого шага, попробуйте сами. Интегрируйте код вместе и успешно получите токен
Суммировать
Для зашифрованного JS-кода можно максимально использовать алгоритм шифрования в Python. На самом деле это своего рода секрет против выпадения волос.Конечно, если у вас много волос, вы можете игнорировать это и попытаться вычесть код JS, это не невозможно!
Публичный номер: [Программирование на Python и реальный бой] Добро пожаловать, обратите внимание