Запрос анализа
На этот раз сначала откройте целевой веб-сайт — Amoy Elephant (taodaxiang.com/credit2)
Откройте «Инструменты разработчика» и автоматически войдите в отладку. Давайте сначала отформатируем его, чтобы посмотреть, можно ли решить его, переписав функцию.
Явно не очень удачное решение, поэтому попробуем обойти этот антилазинг методом "условной точки останова".
Мы щелкнули правой кнопкой мыши по строкам 3393 и 3395, чтобы добавить «Добавить условную точку останова» и в появившемся диалоговом окне ввели «false».На этот раз антилазание бесконечного отладчика было нами обойдено.
Хотя антилазание здесь быстро обходится, "условная точка останова" имеет определенные ограничения.Вот статья, рекомендованная к изучению, поэтому повторяться не буду.
сегмент fault.com/ah/119000001…
После решения мер по предотвращению сканирования мы обновили страницу, чтобы просмотреть запрос страницы, и вскоре обнаружили интерфейс запроса, параметры шифрования и другую информацию.
Интерфейс запроса:
Знак параметра шифрования:
Найдите зашифрованное место
С помощью запроса захвата пакета мы обнаружили интерфейс и параметры шифрования, а также попытались определить местоположение шифрования, выполнив поиск по ключевому слову sign.
Путем поиска мы нашли три файла, содержащих ключевые слова, и, извлекая файлы, мы быстро нашли место, где было зашифровано значение знака:
Анализировать шифрование
Очевидно, этот js-файл был в определенной степени обфусцирован, и теперь есть два пути его решения:
Во-первых, вывести код напрямую, но не так уж просто вывести код после обхода отладчика.
Второй — прочитать шифрование и напрямую переписать его в шифрование Python.
Это шифрование относительно простое, все это шифрование md5, которое можно угадать, проанализировав запрос, и шифрование остается неизменным после нескольких запросов.Следующий шаг — проанализировать, какие поля зашифрованы в значения md5.
Более очевидными здесь являются два фрагмента кода в js:
_0x2c114b['XDFEp']
Этот метод заключается в объединении строк
_0x2c114b['zANjZ']
Этот метод должен принять значение MD5 строки
После отладки точки останова обнаруживается, что конечная строка склеена по «ключевому слову запроса» + «фиксированный ключ» + «ключевое слово запроса» + «значение параметра типа».
Сравнивая два метода, удобнее переписать метод python, основной код которого выглядит следующим образом:
from hashlib import md5
def md5value(s):
a = md5(s.encode()).hexdigest()
return a
Мы покорили Taoxiangxiang, анализируемый здесь веб-сайт. Шифрование этого веб-сайта не сложно. Основная трудность заключается в бесконечном отладчике при анализе. На самом деле существует множество других веб-сайтов того же типа. Вы можете обратиться к статье. Попробуйте метод, упомянутый в нем самостоятельно ~