При работе с Fiddler часто возникают проблемы, которые решаются перезапуском сниффера, перезагрузкой компьютера или девайса, с которого сниффится трафик. Но бывает и такое, что перезапуском проблема не решилась и даже полной переустановкой фиддлера. Это статья не о чем-то новом и неизведанном, а скорее туториал, который поможет вам, когда вы всё сделали правильно, но "ничего не работает".
Для начала стоит проверить (даже, если уже проверяли) настройки Fiddler и девайса, с которого вы хотите сниффить трафик.
Настройка Fiddler на Windows для сниффинга трафика с iOS и Android девайсов
Открыть Fiddler
Перейти Tools -> Options
-
Во вкладке Connections установить галочку Allow remote computers to connect
Перезагрузить Fiddler, чтобы изменения вступили в силу
-
Во вкладке HTTPS:
1) установить галочку на Capture HTTPS CONNECTs
2) установить галочку на Decrypt HTTPS traffic
3) в появившемся окне “Trust the Fiddler Root certificate” кликнуть Yes
4) в окне Security Warning кликнуть Yes
5) в окне Add certificate to the Machine Root List? Нажать Yes
6) в появившемся окне “Do you want to allow this app to make changes to your device?” выбрать Yes
7) установить галочку Ignore server certificate errors (unsafe)
В остальных вкладках оставить всё по дефолту, нажать ОК
-
В верхнем тулбаре активировать Stream и Decode
Настройка iOS девайса для работы с Fiddler
Открыть Settings
Тапнуть пункт Wi-Fi
Тапнуть иконку i у сети, у которой подключен девайс
Проскроллить вниз и перейти в пункт Configure Proxy
Выбрать Manual
В поле Server ввести свой IP адрес
В поле Port ввести свой Порт, тапнуть Save
Открыть браузер и ввести в адресную строку http://ipv4.fiddler:{Port}. Например, если порт 8888, то ссылка будет выглядеть так http://ipv4.fiddler:8888 ИЛИ ввести в адресную строку {IP}:{Port}, например, 192.168.162.202:8888
Тапнуть на ссылку “FiddlerRoot certificate” и загрузить сертификат
Перейти в Settings -> General -> Profile и установить скачанный сертификат
Перейти в Settings -> General -> About -> Certificate Trust Settings и поставить чекбокс у нашего сертификата
Настройка Android девайса для работы с Fiddler
Открыть Settings
Тапнуть Wi-Fi
Тапнуть и удерживать сеть Wi-Fi, к которой подключен девайс
Выбрать Modify Network
Выбрать “Show advanced options”
Тапнуть Proxy и выбрать Manual
В поле Server ввести свой IP адрес
В поле Port ввести свой Порт, тапнуть Save
Открыть браузер и ввести в адресную строку http://ipv4.fiddler:{Port}. Например, если порт 8888, то ссылка будет выглядеть так http://ipv4.fiddler:8888 ИЛИ ввести в адресную строку {IP}:{Port}, например, 192.168.162.202:8888
Тапнуть на ссылку “FiddlerRoot certificate”, сертификат загрузится на девайс
Установка должна произойти автоматически, если сертификат не установился, то свайпнуть вниз и тапнуть иконку Settings
Перейти Personal -> Security
Перейти в Credential Storage и тапнуть “Install from storage”
Тапнуть файл FiddlerRoot.cer
(Опционально) Ввести имя сертификата, например, FiddlerRoot
Проверить эту конфигурацию можно Trusted credentials -> User, там должен отобразится установленный сертификат
Запросы HTTPs остаются зашифрованными
Нужно здесь скачать плагин генерации сертификатов “CertMaker for iOS and Android”
Перейти в Fiddler в Tools -> Options -> HTTPS и в Certificates generated by выбрать CertMarker
Перезапустить Fiddler
На девайс повторно скачать сертификат с http://ipv4.fiddler:{Port}, т.к. он будет генерироваться заново
Выполнить установку сертификата на девайсе
После всех вышеописанных манипуляций Fiddler будет послушно декодировать необходимые HTTPs запросы с девайса.
QuAzI
Случайно узнать, что девайсу до лампочки на левые сертификаты.
А ещё есть всякие SSL Pinning и прочие весёлые штуки, которые отладку превращают в тот ещё адок.
Кстати, Postman тоже умеет притворяться проксёй, можно теперь прямо там насохранять запросов или импортнуть HAR и дебажить. Умел бы он ещё для отдельно взятых запросов подставлять ответ сервера ожидаемый, чтобы клиента удобнее дебажить было - цены бы не было
0xffffffffffffffff
Тоже раньше во времена android 2.3 использовал Fiddler как прокси. Потом долго не экспериментировал. А недавно как раз когда хотел для снифинга использовать Fiddler не получилось как раз из-за SSL Pinning. В итоге нашел хорошую статью про httptoolkit.tech и frida'у. Там же в статье есть ссылка на скрипт для frida unpinning. В том приложении трафик которого интересовал как раз использовался okHttp3 (подсмотрел в JADX). Все хорошо получилось подсмотреть, правда немного помучился с рутованием эмулятора с установленными сервисами.