Fiddler — це безкоштовний веб-проксі для налагодження, який дозволяє розробникам та фахівцям з безпеки перехоплювати, інспектувати, модифікувати та відтворювати HTTP/HTTPS-трафік між клієнтом (наприклад, веб-браузером або програмою) та сервером у системі Windows. Він працює, позиціонуючи себе як посередник, перехоплюючи всі мережеві запити та відповіді, що проходять через нього, забезпечуючи детальний контроль та видимість веб-комунікацій.
Налаштування Fiddler як вашого проксі
Встановлення
Fiddler Classic можна завантажити з офіційної сторінки Telerik. Встановлення включає стандартний майстер налаштування Windows. При першому запуску Fiddler зазвичай налаштовує себе як системний проксі.
Конфігурація проксі Fiddler за замовчуванням
За замовчуванням Fiddler прослуховує 127.0.0.1:8888. Коли Fiddler запускається, він автоматично змінює налаштування системного проксі Windows, щоб спрямувати трафік через цю адресу. Коли Fiddler закривається, він зазвичай відновлює початкові налаштування системного проксі. Ця автоматична конфігурація спрощує його використання для загального веб-налагодження.
Перехоплення HTTPS-трафіку
Щоб інспектувати HTTPS-трафік, Fiddler повинен його розшифрувати. Це вимагає встановлення кореневого сертифіката Fiddler у сховище довірених сертифікатів системи.
- Перейдіть до
Tools > Options > HTTPS. - Увімкніть
Capture HTTPS CONNECTs. - Увімкніть
Decrypt HTTPS traffic. - Натисніть
Actions, потімTrust Root Certificate. Підтвердьте будь-які запити безпеки.
Після того, як сертифікат буде довіреним, Fiddler може виконувати атаку "людина посередині" на HTTPS-з'єднання, генеруючи тимчасові сертифікати для кожного перехопленого домену, підписані його довіреним кореневим сертифікатом. Клієнти, налаштовані довіряти кореневому сертифікату Fiddler, тоді надсилатимуть трафік через Fiddler без попереджень безпеки.
Інтеграція Fiddler із зовнішнім вихідним проксі
Організації часто використовують корпоративні проксі для мережевої безпеки, фільтрації контенту або контролю доступу. Fiddler можна налаштувати для пересилання захопленого трафіку через такий вихідний проксі. Це дозволяє налагоджувати програми за корпоративним проксі без обходу інфраструктури безпеки.
Налаштування Fiddler для використання вихідного проксі
Щоб зв'язати Fiddler з існуючим проксі:
- Перейдіть до
Tools > Options > Gateway. - Виберіть один з наступних варіантів:
- Use System Proxy: Fiddler спробує використовувати налаштування проксі, конфігуровані на рівні операційної системи (наприклад, у налаштуваннях LAN Internet Explorer). Це поведінка за замовчуванням.
- Manual Proxy Configuration: Вкажіть власний вихідний проксі.
- Виберіть
Manual Proxy Configuration. - Введіть адресу та порт проксі у форматі
hostname:portабоIP_address:port. - Приклад:
corporateproxy.example.com:8080. - Якщо вихідний проксі вимагає автентифікації, встановіть прапорець
Authenticate with upstream proxyта надайте облікові дані.
- Виберіть
- Натисніть
OK, щоб застосувати зміни.
Поведінка ланцюжка проксі Fiddler
Коли Fiddler використовує вихідний проксі, потік трафіку стає таким:
Клієнт (наприклад, браузер) -> Fiddler (127.0.0.1:8888) -> Вихідний проксі -> Інтернет
Fiddler виконує свої функції захоплення та розшифровки, потім пересилає (потенційно повторно зашифрований) запит на налаштований вихідний проксі. Вихідний проксі потім обробляє маршрутизацію до кінцевого пункту призначення. Це ланцюгування додає додатковий стрибок, що може спричинити незначну затримку.
Аналіз трафіку за допомогою Fiddler
Список сесій
Основний інтерфейс відображає список захоплених сесій. Кожен рядок представляє HTTP/HTTPS-запит та відповідну відповідь. Ключові стовпці включають:
* Result: Код стану HTTP.
* Protocol: HTTP або HTTPS.
* Host: Ім'я хоста цільового сервера.
* URL: Повна URL-адреса запиту.
* Body: Розмір тіла відповіді.
* Caching: Директиви кешування.
Інспектори
Вкладка "Інспектори" надає детальні перегляди вибраних запитів та відповідей.
- Інспектори запитів:
- Headers: Відображає всі заголовки HTTP-запиту.
- WebForms: Показує дані форми, закодовані URL-адресою.
- Raw: Представляє повний сирий HTTP-запит.
- JSON/XML: Форматований вигляд для тіл запитів JSON/XML.
- Інспектори відповідей:
- Headers: Відображає всі заголовки HTTP-відповіді.
- TextView: Перегляд тіла відповіді у вигляді простого тексту.
- ImageView: Відображає відповіді-зображення.
- Raw: Представляє повну сиру HTTP-відповідь.
- JSON/XML: Форматований вигляд для тіл відповідей JSON/XML.
AutoResponder
Вкладка AutoResponder дозволяє перехоплювати запити та відповідати локальними файлами або власними даними без звернення до сервера. Це корисно для:
* Мокування API: Симуляція відповідей сервера для розробки та тестування.
* Тестування умов помилок: Повернення конкретних кодів стану HTTP.
* Модифікація контенту: Впровадження локальних файлів JavaScript або CSS.
Правила можуть бути визначені за допомогою точних збігів, символів підстановки або регулярних виразів.
Composer
Вкладка Composer дозволяє користувачам вручну створювати та виконувати HTTP-запити. Це корисно для:
* Відтворення запитів: Повторне надсилання раніше захопленого запиту, можливо, з модифікаціями.
* Тестування кінцевих точок API: Надсилання власних запитів для перевірки поведінки API.
* Фазинг: Багаторазове надсилання запитів з різними параметрами.
Користувачі можуть змінювати URL, заголовки та тіло запиту перед його виконанням.
Фільтри
Вкладка "Фільтри" дозволяє фільтрувати список сесій, щоб зосередитися на відповідному трафіку.
* Hosts: Показувати або приховувати трафік до певних імен хостів.
* Processes: Фільтрувати трафік за вихідним процесом Windows (наприклад, показувати лише трафік від chrome.exe).
* URL Content: Приховувати сесії, де URL містить певні рядки.
* Status Codes: Відображати лише сесії з певними кодами стану HTTP.
Приклад фільтра для відображення лише трафіку з певного хоста:
// У розділі 'Hosts' встановіть прапорець 'Show only traffic from the following Hosts'
// Додайте 'example.com' до списку.
Поширені випадки використання аналізу проксі
Налагодження веб-додатків
Fiddler допомагає діагностувати такі проблеми, як:
* Неправильно надіслані параметри запиту.
* Неочікувані відповіді сервера або коди помилок.
* Відсутні або некоректні заголовки HTTP.
* Проблеми з міждоменним обміном ресурсами (CORS).
Тестування безпеки
- Аналіз потоку автентифікації: Перехоплення запитів на вхід для перевірки безпечної передачі облікових даних.
- Виявлення вразливостей: Виявлення незашифрованих конфіденційних даних, небезпечних заголовків HTTP або неправильних конфігурацій.
- Управління сесіями: Аналіз атрибутів файлів cookie та використання токенів сесії.
Оптимізація продуктивності
- Завантаження ресурсів: Виявлення великих активів, повільного часу завантаження або неефективних стратегій кешування (наприклад, відсутність заголовків
Cache-Control). - Накладні витрати на запити: Вивчення кількості та розміру запитів для оптимізації використання мережі.
Розробка та тестування API
- Інспекція API: Розуміння того, як програма взаємодіє зі своїми внутрішніми API.
- Мокування API: Використання AutoResponder для симуляції різних відповідей API для розробки на стороні клієнта.
- Валідація кінцевих точок: Використання Composer для тестування кінцевих точок API з різними корисними навантаженнями та параметрами.
Fiddler проти інших інструментів проксі
| Функція | Fiddler Classic (Windows) | Burp Suite Community (Кросплатформний) | Charles Proxy (Кросплатформний) |
|---|---|---|---|
| Основний фокус | Загальне веб-налагодження, розробка, продуктивність. | Тестування веб-безпеки, тестування на проникнення. | Загальне веб-налагодження, розробка, продуктивність. |
| Вартість | Безкоштовно | Безкоштовно (Community Edition), Платно (Professional Edition) | Платно (Доступна пробна версія) |
| Підтримка ОС | Windows | Windows, macOS, Linux | Windows, macOS, Linux |
| Розшифровка HTTPS | Так, з встановленням кореневого сертифіката. | Так, з встановленням кореневого сертифіката. | Так, з встановленням кореневого сертифіката. |
| Ключові функції | AutoResponder, Composer, Filters, розширені Inspectors. | Proxy, Intruder, Repeater, Sequencer, Decoder, Scanner (Pro). | Proxy, Rewrite, Map Local/Remote, Throttling, DNS spoofing. |
| Скриптинг | FiddlerScript (JScript.NET) для власних правил та розширень. | Розширення (Java, Python, Ruby). | Власні плагіни (Java). |
| Зручність використання | Зручний для розробників та тестувальників. | Складніший для вивчення, орієнтований на фахівців з безпеки. | Інтуїтивно зрозумілий інтерфейс, добре підходить для загального налагодження. |
Усунення несправностей проксі Fiddler
Трафік не відображається
- Статус захоплення Fiddler: Переконайтеся, що
File > Capture Trafficвстановлено (або натисніть F12). У рядку стану має відображатися "Capturing". - Налаштування системного проксі: Перевірте, чи Fiddler успішно налаштував системний проксі. Перейдіть до
Tools > Options > Connectionsі переконайтеся, щоAct as system proxy on startupвстановлено. - Конфігурація клієнта: Якщо налагоджується програма, що не є браузером, переконайтеся, що вона налаштована на використання проксі Fiddler (
127.0.0.1:8888). - Брандмауер: Перевірте, чи брандмауер не блокує порт Fiddler або мережевий доступ.
Помилки розшифровки HTTPS
- Довіра до сертифіката: Переконайтеся, що кореневий сертифікат Fiddler правильно встановлений та довірений у системі та браузері. Повторно запустіть
Actions > Trust Root CertificateуTools > Options > HTTPS. - Сховища довіри для конкретних програм: Деякі програми (наприклад, мобільні програми, програми Java) використовують власні сховища довіри сертифікатів, обходячи системне сховище. Це може вимагати ручного встановлення сертифіката Fiddler у їхнє конкретне сховище довіри або вимкнення закріплення сертифіката.
- Термін дії сертифікатів закінчився: Переконайтеся, що термін дії кореневого сертифіката Fiddler не закінчився.
Підключення до вихідного проксі
- Правильна адреса/порт: Двічі перевірте адресу та порт вихідного проксі в
Tools > Options > Gateway. - Автентифікація: Якщо вихідний проксі вимагає автентифікації, перевірте облікові дані, надані у Fiddler.
- Доступність мережі: Переконайтеся, що машина, на якій працює Fiddler, може досягти сервера вихідного проксі. Використовуйте
pingабоtelnet, щоб перевірити підключення до IP та порту вихідного проксі. - Журнали вихідного проксі: Перегляньте журнали вихідного проксі на наявність відмов у підключенні або помилок автентифікації.