본문 바로가기
API/Fiddler

Fiddler_브라우저 트래픽 캡처

by Testengineer 2022. 9. 30.
반응형

인터넷 익스플로러, 크롬, 사파리는 자동으로 기본 프록시 서버로 트래픽을 전송하기 때문에 피들러를 사용 시 이 브라우저들의 트래픽을 자동으로 캡처하고 있게 된다.

 

다른 응용 프로그램의 트래픽 캡처

윈도우에어서 가장 많이 사용되는 http/https/ftp 네트워크 라이브러리는 WinINET이다. WinINET은 인터넷 익스플로러를 비롯한 수만 개의 응용 프로그램에서 사용한다. 피들러는 캡처를 시작할 때 직접 WinINET의 프록시 설정을 다루기 때문에 일반적으로 WinINET을 사용한 응용프로그램은 피들러와 잘 동작한다.

 

WinHTTP

WinHTTP는 WinINET와 비슷하지만 윈도우 서비스 등에서 조용히 동작하도록 설계되었다. 응용 프로그램을 WinINET를 사용하는 경우에는 WinHttpOpen이나 WinHttpSetOption API를 사용해 피들러에 직접 연결 요청을 보낼 수 있다. 응용 프로그램의 코드를 수정할 수 없는 경우라면 명령행을 사용해서 WinHTTP의 기본 프록시 설정을 바꿔야 한다.

.NET  프레임워크

마이크로소프트의 .NET  프레임워크는 System.NET 어셈블리에 http/https/ftp 프로토콜을 구현해 두었다. 일부 .NET 기반 응용 프로그램은 프로그램 시작 시 WinINET의 프록시 설정을 자동으로 적용하므로 응용 프로그램을 실행하기 전에 피들러를 실행하면 피들러에서 응용 프로그램의 트래픽을 캡처할 수 있다. 응용프로그램의 소스를 직접 다룰 수 없는 경우라면 설정 매니페스트 파일에 프록시를 설정해주는 방법도 있다.

Java

일부 자바 실행환경(JRE)는 WinINET 프록시 설정으로 자동으로 적용하지만, 사용하는 JRE에 따라 기본 프록시 서버를 설정하는 방법은 달라질 수 있다.

jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=888 MyApp
jre -DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888

사용 중인 JRE에 두 명령어가 모두 동작하지 않는다면 JRE 문서를 참고하여 프록시 설정을 하면 된다.

PHP/CURL

PHP 내부에서 동작하는 CURL에 대해 프록시를 설정하려면 웹 요청을 전송하기 전에 코드를 실행하면 된다. 코드의 $ch 변수는 curl_init()를 실행한 후 반환받은 리소스 핸들이다.

curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888');

 

모바일 기기의 트래픽 캡처하기

WIFI또는 이더넷을 지원하는 대부분의 기기들은 자신의 트래픽을 피들러로 보낼 수 있다. 먼저 외부 트래픽을 받을 수 있도록, fiddler Tools > Options > Connections > Allow remote computers to connect를 설정한다.

그런 다음, 웹 브라우저에서 "자신이 실행 중인 컴퓨터 ip주소 : 8888"에 접속해서 "Fiddler Echo Service" 웹 페이지가 노출되는지 확인한다.

모바일 기기에서는 ios의 경우, 와이파이 설정을 변경해야 한다.

와이파이 프록시 구성을 수동으로 변경한 후 서버에는 실행 중인 컴퓨터 ip주소를 입력하고 포트에는 피들러가 리스닝하고 있는 포트를 입력한다. 인증은 꺼진 상태로 남겨둔다.

이렇게 설정이 와뇰되고 모바일 기기의 트래픽이 웹 세션 목록에 나타나면 접속에 성공한 것이다. 하지만 안 되는 경우가 있다.

대다수 가정용 라우터에는 wifi에 접속한 기기가 이더넷 포트를 통해 접속한 장치에 바로 접근할 수 없도록 막는 wifi 격리 기능이 있다. 일부 라우터는 wifi에 접속한 기기 간에도 서로 접근할 수 없도록 막아두기도 한다. 만약 사용 중인 라우터가 이러한 기능을 제공한다면, 피들러를 사용할 때 이 기능을 꺼줘야 한다.

 

반응형

'API > Fiddler' 카테고리의 다른 글

Fiddler_피들러 사용기법  (2) 2022.09.25
Fiddler_기본개념  (0) 2022.09.20

댓글