- Туториал: HTTPs запросы с iOS и Android девайсов не расшифровываются в Fiddler
- Настройка Fiddler на Windows для сниффинга трафика с iOS и Android девайсов
- Настройка iOS девайса для работы с Fiddler
- Настройка Android девайса для работы с Fiddler
- Запросы HTTPs остаются зашифрованными
- Capture Android Mobile Web Traffic With Fiddler
- Prerequisites
- Set up Fiddler
- Set up Android Networking
- Google Chrome Settings
- Set up Android Networking
- Web Browsing
- Install Fiddler Certificate to Android
- Return to Normal Android Networking
- Fiddler = удобный сниффер + прокси сервер
- Зачем это делать ?
- Установка Fiddler
- Настройка Fiddler
- Основные настройки
- Установка сертификатов на Windows устройствах
- Анализ трафика
- Изменение данных запросов
- Задача 1: Запрет сайта
- Задача 2: Запрет загрузки ресурса
- Задача 3: Переадресация запроса
- Задача 4: Сбор данных
- Задача 5: Изменить текст в ответе
- Задача 6: Заменить ресурс веб-портала на локальный ресурс
- Задача 7: Изменение свойств HTML-объектов
- Задача 8: Скрыть элементы по className меняя css-файлы
- Задача 9: Заставить страницу открываться в текущем окне
- Задача 10: Выполнение скриптов для определенных IP
- Задача 11: Меняем css-стили портала
- Задача 12: Запрет PUT-команды и аналогичных
- Задача 13: Изменение тела POST-запроса
- Задача 14: Меняем заголовки HTTP-пакета
- Задача 15: Меняем Cookie
Туториал: HTTPs запросы с iOS и Android девайсов не расшифровываются в Fiddler
При работе с Fiddler часто возникают проблемы, которые решаются перезапуском сниффера, перезагрузкой компьютера или девайса, с которого сниффится трафик. Но бывает и такое, что перезапуском проблема не решилась и даже полной переустановкой фиддлера. Это статья не о чем-то новом и неизведанном, а скорее туториал, который поможет вам, когда вы всё сделали правильно, но «ничего не работает».
Для начала стоит проверить (даже, если уже проверяли) настройки Fiddler и девайса, с которого вы хотите сниффить трафик.
Настройка Fiddler на Windows для сниффинга трафика с iOS и Android девайсов
Перейти Tools -> Options
Во вкладке Connections установить галочку Allow remote computers to connect
Вкладка Connections
Перезагрузить 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)
Вкладка HTTPs
В остальных вкладках оставить всё по дефолту, нажать ОК
В верхнем тулбаре активировать Stream и Decode
Настройка iOS девайса для работы с Fiddler
Тапнуть пункт Wi-Fi
Тапнуть иконку i у сети, у которой подключен девайс
Проскроллить вниз и перейти в пункт Configure Proxy
В поле Server ввести свой IP адрес
В поле Port ввести свой Порт, тапнуть Save
Открыть браузер и ввести в адресную строку http://ipv4.fiddler:
Тапнуть на ссылку “FiddlerRoot certificate” и загрузить сертификат
Перейти в Settings -> General -> Profile и установить скачанный сертификат
Перейти в Settings -> General -> About -> Certificate Trust Settings и поставить чекбокс у нашего сертификата
Настройка Android девайса для работы с Fiddler
Тапнуть и удерживать сеть Wi-Fi, к которой подключен девайс
Выбрать Modify Network
Выбрать “Show advanced options”
Тапнуть Proxy и выбрать Manual
В поле Server ввести свой IP адрес
В поле Port ввести свой Порт, тапнуть Save
Открыть браузер и ввести в адресную строку http://ipv4.fiddler:
Тапнуть на ссылку “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
На девайс повторно скачать сертификат с http://ipv4.fiddler:
Выполнить установку сертификата на девайсе
После всех вышеописанных манипуляций Fiddler будет послушно декодировать необходимые HTTPs запросы с девайса.
Источник
Capture Android Mobile Web Traffic With Fiddler
When doing web development on the desktop, you have the benefit of inspection and debugging tools available in modern browsers like Chrome, Firefox, Safari and Internet Explorer. Inspecting web traffic for page requests and API calls is relatively straightforward. Once you move over to mobile development, you miss a lot of those built-in tools. Luckily there are some good desktop network proxy tools which can make mobile traffic inspection possible again.
In this post I’ll walk through setting up an Android 4.x device with Fiddler running on a Windows PC. Fiddler is a powerful HTTP/HTTPS proxy utility that is pretty easy to set up and use for this type of analysis. And it’s free. (Mac users could use similar steps with the Charles web debugging proxy; it’s not free but does have a free trial and is relatively inexpensive.)
Once we have this set up, some typical use cases include:
- Mobile web development or performance measurement
- Mobile app development or debugging
- Observing other apps on your phone to understand network connections being made or for security analysis
Prerequisites
As prerequisite, you should install Fiddler and be somewhat familiar with how to use it. If you haven’t used it before, check out the features tour on the Fiddler website.
The Android device should be on the same network as the Windows PC. The PC doesn’t have to be on Wi-Fi, as long as they can connect to each other. (If in doubt, trying pinging from the Windows PC to the Android device to verify the local network connection.)
Set up Fiddler
After Fiddler is installed, configure it to allow remote connections and to decrypt HTTPS traffic:
- Click menu Tools | Fiddler Options, then select the Connections tab
- Make note of the “Fiddler listens on” port (normally it’s 8888)
- Make sure the check box for “Allow remote computer to connect” is checked
- Switch to the HTTPS tab
- Make sure the check boxes for “Capture HTTPS Connects” and “Decrypt HTTPS traffic” are both checked
- Restart Fiddler
- Make note of the PC’s IP address
- Close non essential apps on the Windows PC (to minimize web traffic being routed through Fiddler)
Set up Android Networking
Now we’ll set up the Android device to connect to the Fiddler proxy. These instructions should work for most Android phones or tablets on OS 4.0 and newer. (If your device doesn’t work or needs slightly different steps, you can search Google for your-phone-model http proxy.)
- Tap on Settings, then Wi-Fi
- Find the network on which you’re connected (normally the first one listed), then tap and hold
- Choose Modify network from the pop-up
- Scroll down and enable “Show advanced options”
- Change “Proxy settings” to Manual
- Under “Proxy host name” enter the Windows PC IP address from above
- Under “Proxy port” enter the Fiddler port from above (usually 8888)
- Tap Save and wait a moment for the network to reconnect
Google Chrome Settings
Added 2014-06-06: Thanks to Stack Overflow user comfreek who pointed out this issue with Chrome proxy settings.
On newer versions of Google Chrome for Android, there are new settings for Bandwidth Management. When bandwidth management is enabled (which I believe is the default), HTTP traffic will go through Google proxy servers rather than the customer HTTP proxy we are setting up here.
You’ll need to make sure bandwidth management is turned off:
- Launch Google Chrome
- Go to Settings, then under Advanced tap on Bandwidth management
- Turn off Preload webpages and Reduce data usage
Set up Android Networking
Now we’ll set up the Android device to connect to the Fiddler proxy. These instructions should work for most Android phones or tablets on OS 4.0 and newer. (If your device doesn’t work or needs slightly different steps, you can search Google for your-phone-model http proxy.)
- Tap on Settings, then Wi-Fi
- Find the network on which you’re connected (normally the first one listed), then tap and hold
- Choose Modify network from the pop-up
- Scroll down and enable “Show advanced options”
- Change “Proxy settings” to Manual
- Under “Proxy host name” enter the Windows PC IP address from above
- Under “Proxy port” enter the Fiddler port from above (usually 8888)
- Tap Save and wait a moment for the network to reconnect
Web Browsing
On the Android device, bring up a browser like Chrome and visit a website like http://bing.com. If everything has been set up correctly, you should see the HTTP traffic flowing through Fiddler. You can click and inspect each of the network requests, for example the HTML page, CSS, JavaScript, and images.
Now let’s try a website that forces HTTPS, for example https://wellsfargo.com. In this case the mobile browser is complaining that it can’t validate the SSL certificate from the server. This is accurate because we’re using Fiddler as a proxy and it’s generating its own SSL certificates for us on the fly. (This is what allows Fiddler to decrypt and inspect these HTTPS connections.) We’ll come back to this in a bit.
Caution: I recommend not choosing the “proceed anyway” option here. Mobile browsers tend to cache that choice for a long team, meaning that you won’t be warned about it again in the future.
Install Fiddler Certificate to Android
As a final step to improve the debugging of secure HTTPS connections, we can install a Fiddler “root” certificate on the Android device. (Note: If your device does not already have a PIN or password, you will need to set one up before installing the certificate.)
- On Android start the Chrome browser
- Navigate to http://ipv4.fiddler:8888/
- Tap on the link for the “Fiddler Root Certificate”
- Name the certificate “Fiddler” and install it (entering your PIN or password if prompted)
With this test certificate installed, you should now be able to visit SSL sites from the Android Chrome browser and not receive any certificate warnings. The network traffic should also be viewable in Fiddler. Good test sites are those which always force secure HTTPS connections, like the Wells Fargo mobile site at https://wellsfargo.com/.
Return to Normal Android Networking
When you’re done with your Android?Fiddler testing, remember to restore your normal Android network settings. Otherwise you may be confused later when none of your apps work 🙂
Источник
Fiddler = удобный сниффер + прокси сервер
Привет. В данной статье расскажу как и зачем можно изменять HTTP пакеты при отправке на сервер и при получении ответов от сервера.
В статье много практических примеров.
Зачем это делать ?
Пример 1. Анализ трафика.
Пользователи вашей сети пользуются вашим прокси-сервером. Вы можете увидеть на какие сайты заходят пользователи, запрещать дальнейшие переходы на эти сайты.
Пример 2. Сбор данных.
Ваши пользователи пользуются через вас некоторыми веб-ресурсами. Например, они вводят vin-номер своего автомобиля на сайте дилера авто и получают в ответ данные этого автомобиля. Вы можете сохранять эти данные в свою базу данных.
Пример 3. Подмена HTTP-пакетов.
Вам нужно изменить для ваших пользователей внешний вид сайта. Вы можете изменить стили сайта, скрывать любые элементы, добавить свои элементы, вырезать определенные слова или заменить их на другие слова, изменить картинку сайта на любую свою.
Пример 4. Подмена POST-данных.
Вам нужно подправить данные передаваемые на веб-сервер через POST-запрос. Существует множество информации передаваемой в POST-запросах. Пример: отправка логина/пароля на сервер в процессе авторизации. Или онлайн тест отправляет на сервер результаты вашего теста.
Установка Fiddler
Установка простая и быстрая.
Настройка Fiddler
В меню File есть опция «Capture Traffic«. По умолчанию опция включена. Это означает что Fiddler прописывает в реестре Windows себя в качестве прокси-сервера. Браузеры Internet Explorer, Edge, Chrome используют данную настройку, а значит HTTP-пакеты от этих браузеров пойдут через Fiddler.
Если опция «File -> Capture Traffic» выключена, то Fiddler перестает работать как системный прокси-сервер и перехватывает только те пакеты, которые идут непосредственно на адрес Fiddler. Это может быть когда вы настроили ваше приложение или браузер сами для работы через ip/port Fiddler. По умолчанию Fiddler слушает на порту 127.0.0.1:8888
Опция «Keep: All sessions«.
В данном режиме Fiddler не очищает журнал собранных HTTP-пакетов. Если требуется продолжительная работа Fiddler, то при большой нагрузке этих пакетов будет очень много и Fiddler скушает всю доступную оперативную память компьютера. Чтобы этого не случилось переключите в режим «Keep: 100 sessions».
Опция «Decode«.
По умолчанию выключена. В процессе анализа собранных пакетов рекомендуется включить чтобы пакеты автоматически декодировались. Либо можно выделить собранные пакеты через Ctrl+A, вызвать меню нажатием правой кнопки мыши по выделенным пакетам и нажать «Decode Selected Sessions».
Основные настройки
Переходим в «Tools -> Options. «.
Вкладка «HTTPS».
После установки Fiddler не собирает HTTPS-трафик, это необходимо включить. Ставим галочку в опции «Decrypt HTTPS traffic«. После этого Fiddler сгенерирует самоподписанный сертификат и спросит хотите ли установить данный сертификат. Отвечаем да.
Опция «Ignore server certificate errors (unsafe)» — сразу можно не включать. На некоторых порталах бывают ошибки сертификатов, но это редко. Как увидите так включите )
Настройка протоколов. По умолчанию стоит значение » ;ssl3;tls1.0″. Советую сразу установить значение на » ;ssl3;tls1.0;tls1.1;tls1.2″. После изменения настроек необходимо перезапустить программу чтобы настройки вступили в силу.
«Trust Root Certificate» — если сгенерированный Fiddler сертификат вы не установили после включения опции «Decrypt HTTPS traffic», то можно это сделать здесь.
«Export Root Certificate to Desktop» — если вы планируете использовать Fiddler как прокси-сервер локальной сети, то на каждом устройстве пользователя необходимо установить сгенерированный выше сертификат. С помощью этой опции сохраняете сертификат на ваш рабочий стол.
«Reset All Certificates» — в некоторых случаях необходимо сгенерировать новый сертификат взамен старого. В этом случае сбрасываем все Fiddler-сертификаты и генерируем новый сертификат.
Вкладка «Connections».
Здесь устанавливаем на каком порту Fiddler работает как прокси-сервер. Порт по умолчанию «8888».
«Allow remote computers to connect» — включаем опцию чтобы Fiddler начал принимать подключения от других компьютеров.
«Act as system proxy on startup» — по умолчанию опция включена. Если включена, то при запуске опция «File -> Capture Traffic» включена.
После изменения данных настроек необходимо перезапустить программу чтобы настройки вступили в силу.
Вкладка «Gateway».
Здесь устанавливаем куда Fiddler отправляет входящие пакеты, какой прокси использует.
«Use System Proxy (recommended)» — использование системного прокси из реестра текущего пользователя.
«Manual Proxy Configuration» — возможность задать вручную прокси-сервер.
«No proxy» — задаем что выход в Интернет напрямую, без использования прокси.
После изменения данных настроек необходимо перезапустить программу чтобы настройки вступили в силу.
Установка сертификатов на Windows устройствах
После того как сгенерированный сертификат скопирован на рабочий стол этот сертификат необходимо установить на каждое устройство которое будет использовать данный Fiddler в качестве прокси-сервера.
Для установки сертификата используем консоль управления MMC: в коммандной строке вводим команду «mmc».
В меню файл выбираем «Добавить или удалить оснастку«. Из доступных оснасток выбираем «Сертификаты» и с помощью кнопки «Добавить» выбираем данную оснастку. Нажимаем «Ок» и выбираем «учетной записи компьютера«. Это нужно чтобы открыть сертификаты которые установлены для всего компьютера, а затем установить сертификат Fiddler именно в это хранилище. Если открыть сертификаты «моей учетной записи пользователя«, то после установки сертификата Fiddler в это хранилище другие пользователи данного компьютера не смогут подключиться к Fiddler.
Установку сертификата производим в «Доверенные корневые центры сертификации».
Если ваши компьютеры находятся в домене, то используйте инструменты домена для установки сертификата каждому пользователю или на каждый компьютер сети.
Анализ трафика
В процессе работы Fiddler сниффит все HTTP-запросы и их обычно много. Для поиска необходимых запросов можно использовать фильтры. Правой кнопкой мыши выбираем лишний запрос, выбираем «Filter Now» и «Hide ‘. ‘» чтобы скрыть запросы к данному домену. Можно удалять вручную выделенные запросы используя кнопку «Delete«.
Кроме использования фильтров можно искать отдельный текст в теле запросов/ответов: «Ctrl+F» для открытия меню поиска. Найденные запросы подсвечиваются по умолчанию желтым цветом.
Изменение данных запросов
В Fiddler существует инструмент «Fiddler ScriptEditor» (Редактор скриптов) для создания правил модификации трафика. Запуск редактора скриптов через «Ctrl+R» или выбора пункта меню «Rules -> Customize Rules. «.
В редакторе скриптов есть два основных метода: «OnBeforeRequest» и «OnBeforeResponse«:
«OnBeforeRequest» — выполнение скриптов в этом методе происходит перед отправкой пакетов на веб-сервер.
«OnBeforeResponse» — выполнение скриптов в этом методе происходит после получения ответа от веб-сервера.
Ниже приведены примеры скриптов с указанием в каком методе их расположить.
Задача 1: Запрет сайта
Запрещаем переход на адрес сайта содержащий строку.
Задача 2: Запрет загрузки ресурса
Запрещаем загрузку «.svg» файлов для заданного адреса сайта.
Задача 3: Переадресация запроса
Переадресация запроса на адрес сайта содержащий строку.
Задача 4: Сбор данных
Пользователи подключаются через данный прокси-сервер и делают в браузерах некоторые запросы вида «https://myhost.ru?key=abcd&vin=VF38BLFXE81078232&lang=ru«. Задача записать в базу данных событие поиска и передать значение vin-номера. Данный скрипт создает файлы с названием включающем vin-номер. Кроме скрипта необходимо создать утилиту/службу, которая раз в заданный интервал читает каталог «C:\vinsearch\» и записывает данные в базу данных.
Задача 5: Изменить текст в ответе
В данном примере меняем текст «Иванов» на «Петров«.
Задача 6: Заменить ресурс веб-портала на локальный ресурс
Заменим картинку веб-портала на картинку расположенною на локальном диске.
Задача 7: Изменение свойств HTML-объектов
Например, есть картинка с заданными размерами в HTML и нужно эти размеры изменить.
Задача 8: Скрыть элементы по className меняя css-файлы
В данном примере скрываем элементы зная их className в css-файле добавляя свойство «visibility: hidden;«
Задача 9: Заставить страницу открываться в текущем окне
Пример: существует JavaScript, который открывает ссылку в новом окне. Нужно сделать чтобы ссылка открывалась в текущем окне.
Задача 10: Выполнение скриптов для определенных IP
В данном примере меняем текст «Иванов» на «Петров» только для IP = «192.168.0.100«
Задача 11: Меняем css-стили портала
Css-файлы веб-портала можно сохранить на локальном диске, отредактировать и настроить скрипт отдавать стили с локального диска, а не с портала.
Задача 12: Запрет PUT-команды и аналогичных
Запрет команды по ее типу: «PUT«, «DELETE«, etc.
Задача 13: Изменение тела POST-запроса
Изменить тело POST-запроса для заданного портала. При авторизации на данном портале вне зависимости от введенных пользователем данных на веб-портал отправятся данные из скрипта.
Задача 14: Меняем заголовки HTTP-пакета
Заголовки пакетов можно легко редактировать: удалять, добавлять, изменять.
Задача 15: Меняем Cookie
Работа с Cookie: добавление, удаление, редактирование
Источник