При работе с Fiddler часто возникают проблемы, которые решаются перезапуском сниффера, перезагрузкой компьютера или девайса, с которого сниффится трафик. Но бывает и такое, что перезапуском проблема не решилась и даже полной переустановкой фиддлера. Это статья не о чем-то новом и неизведанном, а скорее туториал, который поможет вам, когда вы всё сделали правильно, но "ничего не работает".

Для начала стоит проверить (даже, если уже проверяли) настройки Fiddler и девайса, с которого вы хотите сниффить трафик.

Настройка Fiddler на Windows для сниффинга трафика с iOS и Android девайсов

  1. Открыть Fiddler

  2. Перейти Tools -> Options

  3. Во вкладке Connections установить галочку Allow remote computers to connect

    Вкладка Connections
    Вкладка Connections
  4. Перезагрузить Fiddler, чтобы изменения вступили в силу

  5. Во вкладке 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)

    Вкладка HTTPs
    Вкладка HTTPs
  6. В остальных вкладках оставить всё по дефолту, нажать ОК

  7. В верхнем тулбаре активировать Stream и Decode

Настройка iOS девайса для работы с Fiddler

  1. Открыть Settings

  2. Тапнуть пункт Wi-Fi

  3. Тапнуть иконку i у сети, у которой подключен девайс

  4. Проскроллить вниз и перейти в пункт Configure Proxy

  5. Выбрать Manual

  6. В поле Server ввести свой IP адрес

  7. В поле Port ввести свой Порт, тапнуть Save

  8. Открыть браузер и ввести в адресную строку http://ipv4.fiddler:{Port}. Например, если порт 8888, то ссылка будет выглядеть так  http://ipv4.fiddler:8888 ИЛИ ввести в адресную строку {IP}:{Port}, например, 192.168.162.202:8888

  9. Тапнуть на ссылку “FiddlerRoot certificate” и загрузить сертификат

  10. Перейти в Settings -> General -> Profile и установить скачанный сертификат

  11. Перейти в Settings -> General -> About -> Certificate Trust Settings и поставить чекбокс у нашего сертификата

Настройка Android девайса для работы с Fiddler

  1. Открыть Settings

  2. Тапнуть Wi-Fi

  3. Тапнуть и удерживать сеть Wi-Fi, к которой подключен девайс

  4. Выбрать Modify Network

  5. Выбрать “Show advanced options”

  6. Тапнуть Proxy и выбрать Manual

  7. В поле Server ввести свой IP адрес

  8. В поле Port ввести свой Порт, тапнуть Save

  9. Открыть браузер и ввести в адресную строку http://ipv4.fiddler:{Port}. Например, если порт 8888, то ссылка будет выглядеть так  http://ipv4.fiddler:8888 ИЛИ ввести в адресную строку {IP}:{Port}, например, 192.168.162.202:8888

  10. Тапнуть на ссылку “FiddlerRoot certificate”, сертификат загрузится на девайс

  11. Установка должна произойти автоматически, если сертификат не установился, то свайпнуть вниз и тапнуть иконку Settings

  12. Перейти Personal -> Security

  13. Перейти в Credential Storage и тапнуть “Install from storage”

  14. Тапнуть файл  FiddlerRoot.cer

  15. (Опционально) Ввести имя сертификата, например, FiddlerRoot

  16. Проверить эту конфигурацию можно Trusted credentials -> User, там должен отобразится установленный сертификат

Запросы HTTPs остаются зашифрованными

  1. Нужно здесь скачать плагин генерации сертификатов “CertMaker for iOS and Android”

  2. Перейти в Fiddler в Tools -> Options -> HTTPS и в Certificates generated by выбрать CertMarker

  3. Перезапустить Fiddler

  4. На девайс повторно скачать сертификат с http://ipv4.fiddler:{Port}, т.к. он будет генерироваться заново

  5. Выполнить установку сертификата на девайсе

После всех вышеописанных манипуляций Fiddler будет послушно декодировать необходимые HTTPs запросы с девайса.

Комментарии (2)


  1. QuAzI
    25.03.2022 08:45
    +2

    Выполнить установку сертификата на девайсе

    Случайно узнать, что девайсу до лампочки на левые сертификаты.

    А ещё есть всякие SSL Pinning и прочие весёлые штуки, которые отладку превращают в тот ещё адок.

    Кстати, Postman тоже умеет притворяться проксёй, можно теперь прямо там насохранять запросов или импортнуть HAR и дебажить. Умел бы он ещё для отдельно взятых запросов подставлять ответ сервера ожидаемый, чтобы клиента удобнее дебажить было - цены бы не было


    1. 0xffffffffffffffff
      25.03.2022 10:32

      Тоже раньше во времена android 2.3 использовал Fiddler как прокси. Потом долго не экспериментировал. А недавно как раз когда хотел для снифинга использовать Fiddler не получилось как раз из-за SSL Pinning. В итоге нашел хорошую статью про httptoolkit.tech и frida'у. Там же в статье есть ссылка на скрипт для frida unpinning. В том приложении трафик которого интересовал как раз использовался okHttp3 (подсмотрел в JADX). Все хорошо получилось подсмотреть, правда немного помучился с рутованием эмулятора с установленными сервисами.