fiddler 사용법
in etc on Etc
fiddler란
Proxy 기능을 HTTP 프로토콜을 디버깅 할 수 있는 디버거
브라우저 및 응용 프로그램에서 HTTP 프로토콜을 사용하고 있다면 Fiddler를 통해 HTTP 통신을 분석
HTTP와 HTTPS 의 프로토콜을 캡처하고 분석가능
피들러의 좌측, 우측 상단, 우측 하단 각각 세션, 요청, 응답탭이다.
세션 클릭 후 Inspector탭을 클릭하면 요청값과 응답값을 알 수 있다.
[Inspectors] 탭에서 볼 수 있는 각 세부 탭에 대한 간략한 설명은 다음과 같다.
각 탭
1 . Statistics (통계)
- 선택된 트래픽의 보낸크기와 수신된 크기, 요청시간에 대한 상세한 정보를 확인 가능한 탭
(응답이 실패할 경우에 왼쪽 목록에서 붉은색으로 표시)
2 . Inspectors (검사자)
- 상단에는 요청(Request)에 대한 정보, 하단에는 응답(Response)에 대한 정보를 표시
- Request/Response 패킷 공통
[Headers] : 요청/응답 패킷의 헤더 영역을 가공된 항목(Cache, Client, Cookies, …)별로 확인할 수 있다.
[TextView] : 요청/응답 패킷의 바디 영역을 확인할 수 있다.
[SyntaxView] : 요청/응답 패킷의 바디 영역을 보기 좋은 형태로 확인할 수 있다.
[WebForms] : 요청/응답 패킷의 파라미터 변수를 보기 좋은 형태로 확인할 수 있다.
[HexView] : 요청/응답 패킷을 16진수(Hex 값)으로 확인할 수 있다.
[Auth] : 인증과 관련된 내용을 확인할 수 있다.
[Cookies] : 요청/응답 패킷의 헤더 항목 중 쿠키 항목
[Raw] : 요청/응답 패킷을 가공되지 않은 형태로 보여준다. (Burp Suite에서 보던 패킷이 이 항목에 해당)
[JSON/XML] : 요청/응답 패킷을 JSON/XML 형태로 보여준다.
- Response 패킷에만 존재
[Transformer] : 응답 패킷의 압축 상태를 변경할 수 있다.
[ImageView] : 응답 패킷이 이미지 형태인 경우, 해당 이미지를 확인할 수 있다.
[Caching] : 응답 패킷의 캐시 상태 정보를 보여준다. [출처] [Fiddler] 주요기능 - 패킷 캡처/변조(Break Point)|작성자 shionista
3 . AutoResponder
- 특정 패턴의 request, response를 지정한 임의의 파일로 교체가 가능하다
4 . Composer
- Fiddler의 Composer 기능은 요청 패킷을 사용자가 작성해서 보낼 수 있는 기능
5 . Filter
- 검색과 Mark기능으로 필요한 패킷을 찾을 수 있으나 피들러 자체 제공하는 기능인 Filter기능으로 찾을 수 있다. 이 기능을 쓰면, 분석에 필요한 패킷들만 모니터링 할 수 있다.
Use Filters 체크박스를 체크해 필터를 활성화할 수 있고, 세부적인 필터링 규칙을 적용가능 하다.
Host
위와 같이 필터링 기준을 설정할 수 있다.
[Hide the following Hosts] : 아래에 기입한 호스트들의 패킷을 숨긴다.
[Show only the following Hosts] : 아래에 기입한 호스트들의 패킷만 보여준다.
[Flag the following Hosts] : 아래 기입한 호스트들의 패킷을 강조 표시한다.
[Show only the following Hosts] 로 필터링하면, 보고 싶은 세션에 대해서만 작업할 수 있다.
원하는 항목 설정후 Actions를 통해 원하는 세션들을 찾을 수 있다.
해당 조건을 줘서 해당 Host만 불러오는 것도 가능하다.
[Flag the following Hosts] 로 필터링하면, 아래와 같이 필터링한 호스트에 해당하는 패킷에 강조 표시가 된다.
[Client Process] 클라이언트의 프로세스에 대해서 필터링을 한다. [Show only traffic from] : 지정한 프로세스의 트래픽만 보여준다.
[Show only Internet Explorer traffic] : 인터넷 익스플로어(IE)의 트래픽만 보여준다.
[Hide traffic from Service Host] : 서비스 호스트의 트래픽을 숨긴다.
[Request Headers] : 요청 패킷의 헤더에 필터링을 한다.
[Show only if URL contains] : 지정한 문자열을 포함한 URL에 대해서만 보여준다.
[Hide if URL contains] : 지정한 문자열을 포함한 URL을 숨긴다.
[Flag requests with headers] : 지정한 헤더가 포함된 요청 패킷을 강조 표시한다.
[Delete request headers] : 요청을 보낼 때 지정한 헤더를 삭제하고 요청을 보낸다.
[Set request header] : 요청 패킷에 헤더를 추가한다. [Show only if URL contains]와 [Hide if URL contains] 필터는 정규표현식으로 필터를 할 수 있다.
“EXACT:” 를 사용해 대소문자 구분을 포함해 정확히 일치한 URL에 대해서 숨김/표시할 수 있고,
“REGEX:” 를 사용해 정규표현식을 작성하여 일치하는 URL에 대해서 숨김/표시를 할 수 있다.
[Show only if URL contains] 필터를 통해, 지정한 필터에 해당하는 URL의 패킷에 대해서만 작업할 수 있다.
[Set request header] 필터를 설정하게 되면, 모든 요청 패킷에 설정한 헤더가 추가된다.
[Breakpoints] : 필터링 조건에 맞으면 Break Point가 걸린다.
[Break request on POST] : POST 방식의 요청 패킷에 대해서 Break Point를 설정한다.
[Break request on GET with query string] : GET 방식으로 파라미터 변수가 넘어가는 요청 패킷에 대해서 Break Point를 설정한다.
[Break on XMLHttpRequest] : XMLHttpRequest 패킷에 Break Point를 설정한다.
[Break response on Content-Type] : 설정한 응답 패킷의 Content-Type에 대해서 Break Point를 설정한다.
[Response Status Code] : 응답 상태코드로 필터링
[Hide success (2xx)] : 2xx 상태 코드를 가지는 응답 패킷을 숨긴다.
[Hide non-2xx] : 2xx 상태 코드가 아닌 응답 패킷을 숨긴다.
[Hide Authentication demands (401,407)] : 인증 요구에 대한 상태 코드(401,407)를 가지는 응답 패킷을 숨긴다.
[Hide redirects (300,301,302,303,307)] : 리다이렉트 관련 상태 코드(300,301,302,303,307)를 가지는 응답 패킷을 숨긴다.
[Hide Not Modified (304)] : 304 상태 코드를 가지는 응답 패킷을 숨긴다.
[Response Type and Size] : 응답 패킷의 Content-Type과 크기(Size)로 필터링
[Show all Content-Types] : 기본 값으로, 모든 Content-Type의 응답 패킷을 보여준다.
[Show only ~] : 해당하는 Content-Type의 응답 패킷을 보여준다.
[Hide IMAGE/*] : Content-Type이 IMAGE/*인 응답 패킷을 숨긴다.
[Hide smaller than] : 설정한 크기(KB)보다 작은 응답 패킷을 숨긴다.
[Hide larger than] : 설정한 크기(KB)보다 큰 응답 패킷을 숨긴다.
[Time HeatMap] : 응답을 받아오는 데 걸린 시간을 색으로 표시한다. (* 확실하지 않음)
[Block ~] : 해당 종류의 파일의 응답 패킷을 차단한다.
[Response Headers] : 응답 패킷의 헤더에 필터링
[Flag responses that set cookies] : 응답 패킷에 Set-Cookie 헤더가 존재하는 경우, 기울임 표시한다.
[Flag responses with headers] : 지정한 헤더가 포함된 응답 패킷을 강조 표시한다.
[Delete response headers] : 응답을 받을 때 지정한 헤더를 삭제하고 응답을 받는다.
[Set response header] : 응답 패킷에 헤더를 추가한다.