- Регистрация
- 05.09.2022
- Сообщения
- 220
- Реакции
- 131
- Баллы
- 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.wayfair2: Кликай правой кнопкой мыши по нужному запросу и выбирай 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=jsonProtocol: 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 выбирай измененный файл.
Перезапускай приложение и проверяй изменения. ( *перед перезапуском нужно чистить кэш приложения ).
Если было интересно, то попробуй сделать так, что-бы после запуска приложения был такой результат:
- Номер конкурса статей
- Двадцатый конкурс статей
- Тема статьи
- Нестандартные хаки
Вложения
-
1702045356203.png2 KB · Просмотры: 193 -
1702045773705.png567 байт · Просмотры: 203 -
1702049168621.png12,7 KB · Просмотры: 218 -
1702059298021.png12,9 KB · Просмотры: 220 -
1702059479396.png30,5 KB · Просмотры: 196 -
1702059530238.png33,8 KB · Просмотры: 201 -
1702063202039.png18,1 KB · Просмотры: 188 -
1702065980673.png752 байт · Просмотры: 193 -
Frida Server + Charles.zip41,7 MB · Просмотры: 724
Последнее редактирование:




