티스토리 뷰

" 이 포스트는 이런 분에게 추천합니다. "
- Fiddler를 처음 사용하시는 분
Fiddler를 웹 모의해킹 진단에 활용하고 싶으신 분
- 웹 디버깅을 위해 사용하시는 분(단, 해킹 위주의 기능 설명이 많음)

단, 해당 포스트에 나와있는 내용을 바탕으로 절대로 허가받지 않는 사이트에 웹 모의해킹을 시도하지 말아주세요. 해당 게시글에 노출되어 있는 URL에 웹 공격 및 스캔 시도를 하지 말아주세요.

1. 글쓰기에 앞서
올해 진행된 Codegate를 비롯하여 고객사에서 웹 모의해킹 진달을 할때는 항상 burp suite를 활용하여 진단을 하였다. 그러다가 우연히 Fiddler를 알게 되었는데 이 프로그램 역시 별도의 프록시 설정 없이도 웹 모의해킹 진단이 가능하였고 Burp Suite와는 다른 또다른 매력에 빠질 수 있는 툴이었다. Fiddler와 burp suite를 적절하게 활용한다면 웹 모의해킹을 조금더 효율적으로 가능하다는 것도 확인할 수 있었다.

2. 피들러 다운로드
https://fiddler.kr.uptodown.com/windows


3. 피들러 주요 기능 살펴보기
피들러(Fiddler)를 실행시켜보면 아래 그림과 같은 창이 뜨게 된다. 툴기능을 간략하게 분류해보면 4가지로 분류할 수 있다.

① 주메뉴, ②도구 모음 , ③Session List , ④Details View


각 세부 메뉴중에 모의해킹에 도움이 될만한 기능들 위주로 확인하여 작성하였다. 특히 자주 활용하는 기능은 붉은색 Bold 형식으로 표시하였다.


3-1. 주메뉴

3-1-1. File 


1) Capture Traffic : 트래픽 캡쳐할때 사용된다.

2) Load Archive : 저장된 세션을 불러온다.

3) Save : 캡쳐된 세션을 저장한다. 다양한 옵션 제공(모든 세션 저장, 선택된 세션 저장, Requset만 저장 Response만 저장)

4) Export Session : 세션 추출이 기능, 추출 저장 형태는 아래 그림과 같이 다양한 형태 지원



3-1-2. Edit

1) Copy : 세션 복사

2) Remove : 세션 제거

3) Select All : 모든 세션 선택

4) Mark : 세션 마킹 (중앙 줄 긋기, 색깔 변경 등), 웹 모의해킹 진행시 체크가 필요한 세션 마킹시 유용

5) Find Sessions(Ctrl + F) : 원하는 세션을 찾게 해준다.  

필자가 생각하기에는 마킹보다는 이 기능이 자신이 모의해킹을 진행하는 사이트를 구별 표시하기에 더 유용한 것 같다.

예를 들어 www.dotgabi.org 사이트를 표시하기 위해서 검색어에 'www.dotgabi.org'를 넣게 되면 아래와 같이 음영색으로 표시되서 한눈에 알아보기 쉽다.


3-1-3. Rules

1) Hide Image Requests : 이미지 요청 숨기기

2) Automatic Breakpoints : 수동 브레이크 설정

- Before Requests : Request 요청 전에 breakpoint 설정, 웹 Request 변조시 사용

- After Responses : Response 응답 전에 breakpoint 설정, 웹 Response 변조시 사용

3) Customize Rules : 사용자가 Script를 개발하여 필요한 Rules 적용 가능


3-1-4. Tools

1) Fiddler Options : 포트 설정, 프록시 설정, HTTPS 설정, 글씨크기 설정, 연결 도구 설정등이 가능하다.

- General : Fiddler 프로그램 업데이트 및 프로그램 전반적인 설정

- HTTPS : HTTPS 연결 캡처 설정, 서버 증명서 에러 스킵 설정등

- Connection : Fiddler 포트 설정, FTP 요청 캡처 여부

- Gateway : 프록시 설정 기능, Burp와 같이 사용시 Manual Proxy Configuration에 아이피, 포트를 넣어주면 된다.

(Allow remote computers to connect를 체크해주게 되면 안드로이드나 아이폰 프록시 설정을 통해 분석이 가능하다)

- Appearance : 글자 크기 설정

- Extensions : 확장 dll 등록

- Tools : TextEditor 연결 설정, Script Editor 연결 설정, diff 툴 연결 툴 경로 설정

2) WinINET Options : 인터넷 설정 옵션창 열기

3) TextWizard : 인코딩/디코딩(한글 지원), C#byte, JSSTRING 문자열 변환등


4) Sandbox : 개발자의 디버깅 편의를 위해 일부 폼(ID/PW), 결제 사이트, 업로드, 쿠키등 테스트 페이지 사이트 제공

5) Win8 Loopback Exceptions : 윈8에서 루프백을 하는 프로그램들의 캡쳐 여부를 선택할 수 있다. 기본으로 Internet Explorer, Microsoft Edge가 설정되어 있으며 추가적으로 캡쳐를 원하는 어플리케이션이 있으면 해당 프로그램을 체크를 해주면 된다



3-2. 도구 모음

도구 모음의 각 메뉴마다 주요 기능을 하단 요약된 그림을 참고 바란다.



3-3 Session List

캡쳐된 세션 리스트를 보여준다.

각 세션을 클릭하게 되면 우측 Detail list에서 상세 정보를 볼 수 있다.


Session List를 보게 되면 각 세션별로 아이콘이 표시되어 있어 어떤 유형의 세션인지 확인이 가능하다. 자주쓰는 세션 유형아이콘을 분류해 보면 아래 그림과 같다. 

예를 들어 파라미터 변조를 위해 Request에 breakpoint가 건 경우 해당 세션 아이콘은 세번째 이미지:(Request BreakPoint)로 표시되어 있다.


또한 피들러의 세션 리스트 하단 바를 활용하면 조금더 피들러를 효율적으로 사용 가능하다.

하단바의 구체적인 기능을 살펴보면 아래와 같다.

1) Capturing 

 - 클릭으로 캡처 활성화/비활성화 가능

2) Automatic BreakPoint 

- 한번 클릭 → Before Request(Request Intercept)

- 두번 클릭 → After Responses(Response Intercept)

 

3-4 Detail list 

Detail List에서는 웹 모의해킹 진단시 사용되는 기능 위주로 작성하였다.


3-4-1. Inspectors

1) Headers : 헤더 정보를 표시한다. 우측 클릭을 통해 edit Header 선택하면 헤더 value 수정이 가능하다.

2) TextView/SyntacView : 텍스트형태와 Syntax형태로 보여준다.

3) HexView : 16진수 형태로 보여준다. 덮어쓰기가 가능해 Hex 수정이 가능하다. 단 burp Suite에 있는 byte 추가 기능은 없으므로 Raw 메뉴에서 텍스트를 추가한다음 HexView에서 해당 텍스트를 수정해주는 형태로 사용이 가능하다.

4) Raw : Request Data 전체 확인 및 수정이 가능하다. 여기서 Cookie 및 파라미터 수정이 가능하다.

5) JSON/XML : JSON과 XML 데이터 정보 확인이 가능하다.


3-4-2. Composer

Composer 기능을 이용하면 원하는 세션을 드래그하여 Request를 가져온 후 수정이 가능하다. 수정 후에 Execute 버튼을 누르면 세션이 전송된다.

 

3-4-3. Watcher
Watcher는 수집된 URL 정보를 바탕으로 해당 페이지의 위험도를 표시해준다. 관련 위험에 대한 Reference 사이트도 URL로 제공하고 있고 위험도 기준으로 필터해서 확인도 가능하다.


3-4-4. log
프로그램 로그 확인이 가능하다. 

3-4-5. filter
특정 URL을 필터 걸어 해당 URL에 대한 세션만 확인이 가능하게 할 수 있다. 
아래 그림은 www.dotgabi.org url을 필터를 걸었더니 해당 url와 관련된 세션만 캡쳐 되는것을 알 수 있다.
옵션이 인터넷/인트라넷, show/hide/flag등 다양한 기능이 포함되어 있다. Request/Response Header 내용에 따라서도 필터링이 가능하다.

4. Fiddler 웹 모의해킹 실전 활용

이제 Fiddler를 이용하여 웹 모의해킹 중에 간단한 파라미터 변조를 진행해 보겠다. 먼저 Fiddler를 실행시킨 후에 하단의 Quick 메뉴를 이용하여 Capturing과 Request Breakpoint를 클릭하여 활성화 시킨다.


IE를 실행하였더니 초기 홈페이지를 www.naver.com 으로 요청이 전달되었다. 별도의 탭을 열어 로그인을 하기 위해 사이트(www.dotgabi.org)에 접속을 시도했다. 현재 2개의 url이 요청된 상태이므로 fiddler에서 2개의 세션이 보이는 것을 알 수 있다. 좌측 세션 아이콘을 보면 Request Breakpoint가 걸려있는 2개의 세션을 확인할 수 있다.


이제 www.dotgabi.org 에 해당하는 세션만 클릭하고 Go를 누른다. Go를 누르게 되면 선택된 세션 아이콘이 변경되면서 Response(<>) 아이콘으로 변경된다.
(www.dotgabi.org 세션만 실행이 가능하다. 다른 세션은 현재도 breakpoint 걸려 있는 상태이다)



이제 응답을 받은 후에 다음 /board/index.php를 요청하게 되는데 이때 다시 한번 breakpoint가 걸린다. 이걸 다시 Go로 연결해주면 www.dotgabi.org에서 css 랑 js 파일을 내려받는 것을 확인할 수 있다.



세션이 너무 많은 경우 현재 내가 진행하려는 세션을 찾기 힘든 경우 FIND 기능을 이용해서 세션을 노랗게 표시하는 것도 좋은 방법이다. 세션은 다중으로 선택해서 한번에 Go를 누르게 되면 선택한 세션은 모두 진행된다.


홈페이지에서 내려받는 js 파일은 Response breakpoint를 통해 다운받기 전에 해당 세션을 클릭하여 SyntaxView를 통하여 수정이 가능하다.


이제 로그인을 시도하여 ID/PW 파라미터를 변경을 시도해볼 것이다. 웹 Form에 ID/PW를 입력하고 로그인을 하면 Fiddler에 세션이 Request breakpoint 되면서 우측 Detail View의 Inspectors(WebForm/Raw)에서 파라미터 변경이 가능하다. 여기서 파라미터를 변경한 후 두가지를 선택할 수 있다.

Break on response : 해당 Request에 대한 Response break 걸기. 수정된 파라미터에 요청에 대한 Response Intercept

Run to Completion : 해당 세션 진행하기, Response 까지 완료된 상태


이렇게 Fiddler를 활용하여 웹 모의해킹의 기본인 파라미터 변경에 대해서 실습해 보았다.


5. Burp Suite와의 비교? 

Burp Suite와 비교했을때 Fiddler는 다음과 같다고 생각한다. 
1) IE 개발자 도구 기능 + Request/Response Intercept 기능을 함께 수행할 수 있다.
- 보통 js 코드를 수정하거나 css 를 수정하는 테스트를 진행할 때 개발자 도구를 수정한다음에 Burp Suite를 사용하는데 Fiddler를 이용하게 되면 실제 진단시 js코드를 수정하면서 파라미터 변조가 가능하기 때문에 보안 프로그램 우회 진단 수행이시 유용하게 사용이 가능하다.

2) 인코딩/디코딩을 활용할때 Burp Decoder보다 TextWizard에서 제공해주는 기능이 훨씬 많고 편하다.
- 한글 인코딩/디코딩도 지원
- C#, JS 개발 환경까지 고려한 인코딩/디코딩 기능
- 단, hackbar 만큼의 모의진단시 효율적인 코드 변환 기능을 제공하는 것은 아님.

3) Burp Suite에서는 메일 불필요한 세션을 넘겨서 내가 원하는 세션을 찾아야 했는데 Fiddler는 필요한 세션만 선택해서 모의해킹 진행이 가능하다.
- Burp Suite를 사용할때는 불필요한 세션이 걸리는 경우 ctrl+F를 통해 세션을 진행해야 되는 불편함이 있는데 피들러는 필요한 세션을 찾아서 해당 세션만 진행하면 된다.
- 또한 Burp Suite에서는 HTTP History를 살펴보고 Request/Response를 살펴봤었는데 Fiddler의 Find 기능(Ctrl+F)을 이용하여 효과적으로 내가 원하는 세션을 찾기가 쉽다.

4) Burp Suite는 해킹과 관련된 확장 플러그인 개발 및 적용 가능, Fiddler는 세션 필터링에 관한 Rule셋 개발 및 적용 가능
- Burp Suite는 Extension을 이용하여 확장 플러그인 다운로드 및 등록이 가능하다. (Java, Jython, JRuby)
- Fiddler는 Session 필터링에 대한 Rule셋을 스크립트를 통해 개발이 가능하다.

6. 상세 Reference 참고 

필자는 하나하나 메뉴를 찾아가면서 해당 포스트를 썼다.

Fiddler 사용법에 대해서 공식 Reference를 제공하고 있으니 참고하길 바란다.

http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureWinHTTPApp

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday