Рептилия: анализ запроса на шифрование веб-сайта

рептилия

Сканеры: анализ зашифрованных запросов веб-сайта

Цитировать:

В последнее время из-за некоторых требований необходимо сканировать данные некоторых веб-сайтов, а затем анализировать поведение пользователя, поэтому производится запись некоторых возникших проблем, и этот зашифрованный запрос обрабатывается впервые. Также мне потребовалось много времени, чтобы сделать запись процесса обработки, а также я добавил справочный материал для друзей, у которых есть похожие потребности.

Шаги анализа:

1. Прежде всего, это зависит от общего вида запрашиваемого URL.

Вот запрос на получение,Состав uri: доменное имя сайта + адрес API + параметр анализа.
Зашифрованная часть на самом деле является этим анализом.На этом веб-сайте есть запросы на получение и публикацию, но к параметру будет добавлен параметр анализа, чтобы различать Внутренние звонки все же являются чужими запросами, поэтому мы можем получить данные этого сайта, пока взломаем правила генерации этого параметра. 2. Итак, давайте выясним, можем ли мы узнать правило шифрования параметра сплайсинга из файла js веб-сайта или где, начиная с первого параметра запроса, мы находимся в режиме разработчика, нажмите «Сеть», а затем выберите первый интерфейс, щелкните Инициатор. Он перейдет к соответствующему js. В это время обнаружено, что js сжат, щелкните код форматирования, который поставляется с инструментом разработчика Chrome.
После кода формата мы можем легко увидеть, откуда берутся правила шифрования.
3. В настоящее время мы можем добавить точку останова XHR на боковую панель в правой части сети,
Добавьте ключевые слова в наш предыдущий URL-адрес, затем обновите страницу, когда URL-адрес будет запрошен снова, он вернется к этой точке останова.
Левая часть — это переменные, значения и т.д. различных параметров в коде, а правая часть — это стек вызовов, из которого мы можем пошагово узнать, где зашифрованы параметры.
4. Функционал в js этого сайта мне как бэкенду подходит, и немного сложно понять.. Ссылаюсь на какие-то материалы великих богов в интернете, а потом проверяю переданные параметры из начального стека вызовов один за другим онлайн, чтобы увидеть, какой шаг шифрования выполняется.
Этот процесс занимает много времени.В js файле много анонимных функций.При отладке невозможно прочитать их все пошагово.Основная причина - найти проблему передачи параметров.Обнаружено, что одна из параметры в двух стеках вызовов на рисунке не Параметр анализа указывает, что шифрование выполняется в другом стеке вызовов.Таким образом, он расположен, что он зашифрован в вызове get, Легко узнать, какой файл зашифрован.
5. Ставим точку останова в вызове get прямо сейчас и отлаживаем шаг за шагом, чтобы увидеть значение параметра
На самом деле, читаемость здесь тоже довольно плохая, мы можем выбрать параметры, которые мы хотим просмотреть, с помощью мыши и шаг за шагом получить общий процесс шифрования. Также потребуется много времени, чтобы разобраться

результат:

Окончательный перевод в java-код, вероятно, будет таким

private static String generatorAnalysis() {
       final String FLAG = "@#";
       // @#/rank/indexPlus/brand_id/1@#52217050198@#1
       // 时间戳的差值
       Long time = System.currentTimeMillis() - 1515125653845L;
       // 请求的api
       String baseUrl = "/rank/indexPlus/brand_id/1";
       StringBuilder builder = new StringBuilder(FLAG);
       // 拼接字符串的规则 api + @# + 时间戳差值 + @#1
       builder.append(baseUrl).append(FLAG).append(time).append(FLAG).append(1);
       // 自定义的加密 这里加密函数不就给出了  可以自己根据断点里面的值推算出来哦
       String encodeStr = diyEncode(builder.toString());
       // 最后base64编码下
       return new String(Base64.getEncoder().encode(encodeStr.getBytes()));
   }

1. Сначала создайте разницу на основе текущей 13-битной метки времени и фиксированной метки времени.
2. Второй параметр — запрашиваемый API
3. Затем склейка определенной строки в соответствии с правилами склейки в js, одним из которых является @#, который является разделителем склейки.
4. Зашифровать эту строку
5. Наконец, base64 кодирует эту строку.

Суммировать:

Если вы столкнетесь с параметрами шифрования в будущем, не паникуйте. Если веб-сайт не является параметром шифрования приложения, все еще есть большая вероятность, что вы сможете его получить. Проанализируйте структуру URL-адреса, а затем отмените процесс шифрования в соответствии с указанным файлом js. Этот процесс может использовать такие инструменты, как fidder или Charles, Заменить js сайта (используется для слежки за значениями некоторых параметров, которые не приведены в тексте, и планирую написать специальное введение в следующий раз) Наконец, достаточно перевести правила шифрования в код , Главный момент заключается в том, что процесс поиска зашифрованного кода из js-файла и перевода зашифрованного кода должен быть осторожным.Зашифрованная часть может быть одной строкой, но это наиболее критическая точка. Сделайте запись еще раз, а также помогите другим друзьям взломать аналогичные сайты для очистки данных, но не используйте это для нарушений.