- Регистрация
- 05.09.2022
- Сообщения
- 216
- Благодарностей
- 124
- Баллы
- 43
Разберём весь процесс от настройки до поиска запросов и их подмены.
------------------------------------------------------------
Инструменты которые тебе понадобятся:
- Эмулятор LDPlayer 9 .
- Сниффер Charles . ( * Пробная версия или же full с моего архива )
- FRIDA
- Сервис поиска apk
>> Создание образа и предварительная настройка <<
После установки LDPlayer , открываем LDMultiPlayer и создаём новый образ Android 9:
Заходим в настройки включаем Root и ADB ( Открыть локальное соединение ) :
Так - же настраиваем разрешение:
>> Настройка Эмулятора для перехвата запросов <<
Запускай ранее созданный образ Android 9 - свапай верхнюю шторку вниз, жми на иконку
Кликай на
Далее нужно прописать твой Local IP address и Port.
Для этого запускай Charles и переходи на вкладу HELP -> LOCAL IP ADDRESS ( Выбирай нужный сетевой адаптер ! )
* В моём случае это sing-tun Tunnel, так как я использую VPN.
Так-же Local IP address можно узнать через CMD - используя команду ipconfig:
Port по умолчанию 8888 ( * его можно поменять в настройках PROXY - Proxy Settings )
Прописывай эти данные в настройки WI-FI и сэйвись:
Выходим на финишную прямую и устанавливаем сертификат на устройство:
- Открывай браузер
- Скорей всего увидишь запрос на соединение, жми Allow иначе Charles не сможет принимать запросы.
- В адресуню строку прописывай chls.pro/ssl
- После загрузки сертификата - кликаем по нему и устанавливаем
* ЕСЛИ Сертификат не скачивается, то сохрани его на пк и закинь на устройство
* Если попросит установить PIN на устройстов - устанавливаем.
Далее необходимо загрузить frida-server с GitHub или использовать frida-server из моей сборки.
* После завершения загрузки - распакуй содержимое архива в папку где у тебя установлен
* Переименуй frida-server-16.1.8-android-x86_64 в frida-server
* Так-же найди там файл adb.exe
Нашёл ?) , тогда в адресной строке пропиши cmd
Жми ENTER для открытия командной строки по этому пути.
-------------------------------------------------------------------------
Команды для загрузки frida-server на эмулятор:
--------------------------------------------------------------------
0:
adb push frida-server /data/local/tmp/
// Переместит файл по пути /data/local/tmp/1:
adb shell chmod 777 /data/local/tmp/frida-server
// Выдаём права доступа-------------------------------------------------------------------------
Команды для установки frida & frida-tools:
--------------------------------------------------------------------
0:
pip install frida
// Установка FRIDA1:
pip install frida-tools
// Установка frida-tools>> Подготовка к перехвату <<
Разберем способ подмены запросов на примере приложения Wayfair .
Разберем способ подмены запросов на примере приложения Wayfair .
* Скачивай версию от 2020 года [ 5.75.2 ] -> перетаскивай .apk файл на запущенный эмулятор.
* Запускай cmd из папки Ldplayer ( * там где у нас adb.exe )
-------------------------------------------------------------------------
Команды для запуска Frida Server:
--------------------------------------------------------------------
0:
adb devices
// Проверяем подключено ли устройство1:
[I]adb shell[/I]
// Запускаем командную оболочку2:
su
// Переключаемся на root3:
/data/local/tmp/frida-server &
// Запускаем frida server ( * Консоль не закрываем ! )Теперь открываей обычную cmd и используй команду
frida-ps -Uai
// Выводит список процессовИщи приложение по названию и копируй его идентификатор: com.wayfair.wayfair
<< Перехват и подмена запросов <<
Запускай Charles и выключай Windows Proxy [ Cntrl + Shift + P ] , что-бы не засорять лог запросами с пк.
Открывай ещё одну cmd из папки Ldplayer и вводи команду
frida -U -l ssl_bps.js -f com.wayfair.wayfair
// инжектим скрипт обхода ssl pining и запускаем наше приложение по идентификатору.В логе Charles у нас есть список запросов полученный после запуска приложения:
Следующим шагом будет поиск запроса отвечающего за проверку обновлений или проверку версии приложения.
* Анализируем лог и видим 2 обращения по адресу
https://www.wayfair.com
и https://t.wayfair.com
* Давай раскроем список запросов по адресу
https://www.wayfair.com
* В первом запросе log_app_libra_action.... отсутствует интересующая нас информация.
* А вот во втором запросе уже есть интересные данные:
Параметры в заголовках, отвечающие за версию приложения:
app_revision": "1806400",
"app_short_version": "5.75.2",
"system_version": "9"
Ты можешь в режиме реального времени отредактировать запрос и подменить эти значения:
НО! Где нам взять актуальную информацию об app_revision и app_short_version ?
НО! Где нам взять актуальную информацию об app_revision и app_short_version ?
+ Загружай последнюю версию приложения и следуй шагам с самого начала >> Перехват и подмена запросов <<
* не забудь удалить старую версию перед установкой новой.
+ В этом же запросе узнаем актуальные данные:
"app_revision": "2338500",
"app_short_version": "5.231",
0: Удаляй приложение и устанавливай старую версию.
1: Запускай приложение через команду
frida -U -l ssl_bps.js -f com.wayfair.wayfair
2: Кликай правой кнопкой мыши по нужному запросу и выбирай breakpoints ( * Точка останова - позволяет остановить выполнении программы в определенном месте )
3: Перезапускай приложение и жди когда Charles сделает остановку в нужном месте.
4: Ты можешь изменить нужные параметры и отправить запрос нажав Execute .
- НО! В данном приложении есть ещё проверка на время загрузки и если ты не успеешь заменить параметры за это время, то будет ошибка в приложении.
Поэтому мы будем использовать массовую подмену параметров.
Для подмены нескольких параметров используй функцию Rewrite -> Tools - > Rewrite ( Cntrl + Alt + R )
0: Жми на Enable Rewrite а затем Add
1: Затем ещё раз на Add , но в появившемся окне!
2: Заполняй данные из нашего запроса:
https://www.wayfair.com/v/wayfair_app/startup?_show_summary=true&_format=json
Protocol: https
Host: www.wayfair.com
Port: 443
Path: /v/wayfair_app/startup ( * до ? знака )
Query: _show_summary=true&_format=json
** Либо просто вставь ссылку в HOST и она автоматически распарсится.
3: Нажимай Add в третий раз ):
Тут самое интересное! Ты можешь подменить, удалить или добавить Заголовки [ Header ] , тело запроса [ Body ]
Так-же можешь подменить URL , статус ответа и т.д.
Функционал действительно топовый.
В нашем случае используем подмену в теле запроса [ body ]:
Подмену можно выполнить как в заголовках так и в ответе ( переключение чекбоксами )
Подмену можно выполнить как в заголовках так и в ответе ( переключение чекбоксами )
Будем использовать Match для поиска значения и Replace для его замены:
Как помнишь у нас в старой версии значение было:
"app_short_version": "5.75.2"
А в новой:
"app_short_version": "5.231"
+ Пиши в Match -> Value: 5.75.2 а в Replace -> Value: 5.231
Обязательно выбери Replace first ( * подменить один раз ) так-как в нашем запросе больше не встреяается такое значение.
+ Повтори тоже самое для app_revision :
+ Очисти лог Charles с помощью метлы )
+ Перезапускай приложение командой:
frida -U -l ssl_bps.js -f com.wayfair.wayfair
+ Чекай запрос:
+ Чекай приложение:
Теперь ты можешь пропустить обнову и перехватить запрос авторизации до изменений ( целые 3 года ) .
С Rewrite я думаю ты разобрался , давай теперь попробуем подменить ответ - полностью )
>> Подмена ответа в запросе <<
Смотри у нас в запросе есть информация про обновление и поддержки устройства.
Если app_upgrade_required": true , то будет просить обновление.
Давай заменим все начения true на false
Теперь правой кнопкой мыши по запросу - Map Local и в Local patch выбирай измененный файл.
Перезапускай приложение и проверяй изменения. ( *перед перезапуском нужно чистить кэш приложения ).
Если было интересно, то попробуй сделать так, что-бы после запуска приложения был такой результат:
- Тема статьи
- Нестандартные хаки
- Номер конкурса статей
- Двадцатый конкурс статей
Вложения
-
2 КБ Просмотры: 61
-
567 байт Просмотры: 69
-
12,7 КБ Просмотры: 81
-
12,9 КБ Просмотры: 84
-
30,5 КБ Просмотры: 82
-
33,8 КБ Просмотры: 77
-
18,1 КБ Просмотры: 76
-
752 байт Просмотры: 72
-
41,7 МБ Просмотры: 356
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: