Fiddler Classic

강혜인·2025년 5월 29일
0

Security

목록 보기
8/12

Fiddler

컴퓨터와 웹 서버, 서버 사이의 http/http 트래픽을 기록, 검사, 변경하는 데 사용되는 디버깅 프록시 서버 도구

→ 피들러 클래식, 피들러 에븐, 피들러 코어, 피들러 캡, 피들러 잼 등 추가적인 제품과 도구를 포괄함

웹 개발자들이 웹 애플리케이션의 작동 방식을 깊이 이해하고, 발생하는 문제를 신속하게 해결하며, 성능을 최적화하는 데 큰 도움을 줌

초보자도 쉽게 사용 가능한 직관적인 인터페이스를 제공

Fiddler 동작 원리

Fiddler는 Proxy Server의 역할을 함

기본적으로 로컬 프록시 서버로서 클라이언트와 서버 사이의 모든 HTTP/HTTPS Traffic을 캡처하고, 중계함

이 과정에서 Traffic을 디크립트하고, 사용자가 분석하거나 수정할 수 있도록 함

Fiddler 특징/기능

Fiddler는 HTTP/HTTPS Traffic을 캡처해 사용자가 확인할 수 있도록 로깅함

→ 로깅시 자체 서명된 인증서를 사용해 인터셉션을 구현함으로써 수행됨

요청 처리를 중지하고 요청/응답의 변경을 허용하기 위해 중단점을 설정해 네트워크 세션을 편집하는데 사용 가능

  • http/https Traffic 캡처 및 분석
    • 실시간 트래픽 캡처 :
      • 컴퓨터에서 오가는 모든 HTTP/HTTPS 요청과 응답을 캡처해 상세한 정보를 제공 → 어떤 데이터가 전송되고 수신되는지, 그 데이터가 올바르게 처리되는지 확인 가능
    • SSL 디크립션 :
      • HTTPS 트래픽 캡처를 통해 암호화된 데이터 분석 가능 → 이 기능으로 보안상의 문제를 확인 가능
  • 요청 및 응답 편집
    • 요청 수정 :
      • 캡처된 HTTP 요청을 수정하고 서버로 전송 가능 → 특정 시나리오를 테스트하거나 서버가 다른 데이터를 받을 때 어떻게 반응하는지 확인 가능
    • 응답 수정:
      • 서버로부터 받은 응답도 수정해 클라이언트에게 보내기 전 테스트 가능 → 프론트엔드의 에러 처리 로직을 테스트할 때 유용함
  • 성능 테스트 및 최적화
    • 성능 메트릭 :
      • 각 요청에 대해 응답 시간, 데이터 전송 크기 등의 성능 메트릭을 제공 → 웹 애플리케이션의 성능 병목 지점을 식별 가능
    • 자동화된 성능 분석 :
      • 성능을 자동으로 분석, 최적화 할 수 있는 부분을 제안하는 기능 존재
  • 스크립팅 및 자동화
    • FiddlerScript :
      • JavaScript 기반의 스크립트를 사용해 요청과 응답을 자동으로 조작하거나 특정 조건에 맞춰 Traffic 처리 가능 → 반복적인 작업 자동화가 가능해짐
    • 필터링 :
      • 특정 URL 패턴, 요청 유형, 상태 코드 등을 기준으로 Traffic 필터링 가능 → 필요한 Traffic만 선택적으로 분석할 수 있어 효율적임
  • 디버깅 및 문제 해결
    • 에러 디버깅 :
      • HTTP 요청과 응답에 대한 자세한 정보를 제공해 서버 오류, 클라이언트 오류 등을 빠르게 파악하고 해결 가능
    • 세션 저장 및 재생 :
      • 트래픽 세션을 저장하고 나중에 다시 로드해 재분석 가능 → 과거의 문제를 재현하고 해결하는 데 유용함
  • 프록시 설정 및 사용자 지정
    • 프록시 설정 :
      • Fiddler는 중간자(MITM)프록시로 동작 → 모든 Traffic이 Fiddler를 거치도록 설정 가능
    • 사용자 정의 규칙 :
      • 특정 조건에 따라 자동으로 트래픽을 수정하거나, 응답을 처리하는 규칙을 설정 가능

웹 해킹에서의 Fiddler 기능

  • 트래픽 분석을 통한 취약점 탐색
    • 요청 및 응답 분석 :
      • 클라이언트와 서버 간의 모든 HTTP/HTTPS Traffic을 실시간으로 캡처하고 분석 가능 → 해커는 이를 통해 웹 애플리케이션이 어떻게 동작하는지, 어떤 데이터를 주고 받는지 상세히 파악 가능
    • 민감한 정보 노출 확인 :
      • 웹 애플리케이션이 민감한 데이터를 암호화하지 않고 전송하는 경우, Fiddler를 통해 이 데이터를 쉽게 확인 가능 → 애플리케이션이 민감한 정보를 안전하게 처리하는지 안하는지 확인이 가능함
  • 웹 요청 조작
    • 파라미터 변조(Parameter Tampering) :
      • 웹 요청의 파라미터 수정 가능 → ex) 상품의 가격 변조, 관리자의 권한을 가진 사용자로 속이기 → 웹 애플리케이션이 파라미터 검증을 제대로 하지 않는 경우 공격이 가능
    • 세션 하이재킹(Session Hijacking) :
      • 세션 쿠키를 포함한 다양한 헤더 정보를 수정해 다른 사용자의 세션에 접근할 수 있음 → 이 과정에서 세션 관리의 취약점 탐색 가능
  • 보안 검증 및 침투 테스트
    • 크로스 사이트 스크립팅(XSS) 테스트 :
      • XSS 취약점 탐지를 위해 Fiddler를 통해 입력값에 스트립트를 삽입하고, 서버의 응답이 이를 어떻게 처리하는 지 확인 가능
    • SQL Injection 테스트 :
      • 웹 요청에 SQL 명령을 주입해 서버가 이를 처리하는 방식 테스트 가능
    • CSRF 공격 검증 :
      • CSRF(Cross Site Request Forgery) 공격을 시뮬레이션하고, 웹 애플리케이션이 이를 방어하는지 테스트 가능
  • HTTPS Traffic 디크립션 및 분석
    • SSL 스트립핑(SSL Stripping) :
      • HTTPS Traffic을 Fiddler에서 디크립트(복호화)해 내용 분석 가능 → SSL/TLS 암호화가 적절하게 적용되지 않는 웹 사이트를 발견하고, 그 취약점 공격 가능
  • 자동화된 공격 스크립트 작성
    • Fiddler Script 활용 :
      • Fiddler에서 JavaScript를 활용해 FiddlerScript 작성 가능 → 반복적인 요청을 자동으로 수행하거나, 특정 조건에서 자동으로 공격 시나리오를 수행하는 스크립트 제작 가능 ex) 특정 취약점을 자동으로 탐지하고 공격하는 스크립트 작성 가능
  • 웹 애플리케이션 방화벽(WAF) 및 보안 솔루션 우회
    • HTTP Header 변조 :
      • Fiddler를 사용해 HTTP 요청의 헤더를 변조함으로써 WAF(Web Application Firewall)나 보안 솔루션을 우회하려는 시도가 가능함 ex) User-Agent 헤더 변경 → 특정 트래픽이 차단되지 않도록 속이기 가능
  • 보안 연구 및 교육
    • 취약점 학습 :
      • 웹 애플리케이션의 취약점을 학습하고, 시뮬레이션이 가능함 → 다양한 공격 시나리오를 테스트하며 보안 지식 쌓기 가능

다운로드 방법

→ Fiddler 사용 목적, 이메일, 국가/지역 선택 후 다운로드

Fiddler 각 기능

  • WinConfig
    • 현재 컴퓨터에서 실행 중인 네트워크 연결 설정을 열어보거나 조정함
    • Fiddler에서 처리 할 Traffic을 제어할 때 사용
  • Replay
    • 선택한 HTTP/HTTPS 요청을 다시 서버로 보냄
    • 이전에 발생한 요청을 재현해 서버의 응답을 다시 확인하거나, 다른 조건에서 테스트할 때 유용함
  • Go
    • 캡처가 중지된 Traffic을 다시 시작
    • Fiddler가 Traffic을 멈추지 않고 캡처하도록 할 때 사용
  • Stream
    • 실시간으로 데이터를 전송하면서 Traffic을 캡처하는 모드를 활성화
    • 스트리밍 미디어와 같은 실시간 데이터를 분석할 때 사용
  • Decode
    • 압축된 HTTP 응답 데이터를 디코딩해 읽을 수 있는 형태로 변환
    • 압축된 웹 페이지나 리소스를 분석할 때 사용
  • Keep: All sessions
    • 모든 세션을 유지하고 보여줌
    • 모든 Traffic 기록을 유지하면서 분석할 때 사용
  • Filters
    • Traffic중 특정 조건에 맞는 요청과 응답만을 필터링해 보여줌
    • 관심 있는 Traffic만 추적하고 싶을 때 사용
  • Inspectors
    • 요청 및 응답의 내용을 상세히 분석할 수 있는 도구를 제공
    • HTTP 헤더, 바디, 쿠키 등을 세부적으로 분석할 때 사용
  • AutoResponder
    • 특정 요청에 대해 Fiddler가 자동으로 정의된 응답을 제공하도록 설정
    • 서버와의 통신을 차단하거나, 테스트 목적으로 미리 설정된 응답을 제공할 때 사용
  • Composer
    • 새로운 HTTP/HTTPS 요청을 수동으로 생성해 전송 가능
    • 특정 시나리오를 테스트하거나 서버의 특정 동작을 확인하고자 할 때 사용
  • FiddlerScript
    • Fiddler 에서 실행되는 요청 및 응답을 조작하는 스크립트 작성 가능
    • 복잡한 자동화 작업을 설정하거나, 반복적인 Traffic 조작을 자동화 할 때 사용

  • Log
    • Fiddler의 활동 및 오류 메시지 등을 기록하는 로그 화면으로 이동
    • Fiddler에서 발생하는 오류나 주요 이벤트를 확인할 때 사용
  • Statistics
    • 선택한 Traffic Session에 대한 다양한 통계 정보를 보여줌
    • 특정 요청의 크기, 응답 시간 등 성능 메트릭을 분석할 때 사용
  • Inspectors
    • Request와 Response를 세부적으로 분석할 수 있는 다양한 뷰 제공
    • HTTP Header, text, JSON, XML 등 요청 및 응답의 상세 내용을 분석할 때 사용
    • 하단의 세부 탭
      • Headers
        • HTTP Request / Response 의 헤더 정보를 표시
        • 헤더에 포함된 메타데이터, 인증 정보 등을 분석할 때 유용
      • TextView
        • 요청 및 응답의 본문 내용을 일반 텍스트 형식으로 표시
        • 본문의 텍스트 데이터를 확인하고자 할 때 사용
      • SyntaxView
        • 코드의 구문을 강조해 본문을 표시
        • 코드 형태의 본문을 읽기 쉽게 분석할 때 사용
      • WebForms
        • 폼 데이터가 포함된 요청을 표 형태로 보여줌
        • 웹 양식 데이터의 각 필드 값을 쉽게 확인할 때 사용
      • HexView
        • 요청 및 응답의 내용을 16진수로 표시
        • binary 데이터나 특수한 형식을 분석할 때 사용
      • Auth
        • 인증 관련 헤더 정보를 표시
        • 웹 요청에서 사용된 인증 방식을 분석할 때 사용
      • Cookies
        • 요청 및 응답에서 주고받는 쿠키 정보를 표시
        • 웹 애플리케이션의 세션 관리나 사용자 추적 쿠키를 분석할 때 사용
      • Raw
        • 요청 및 응답의 전체 내용을 원시 데이터로 표시
        • 헤더와 바디를 포함한 전체 요청/응답을 한눈에 보면서 분석할 때 유용
      • JSON
        • JSON 형식의 데이터를 구조적으로 표시
        • REST API 응답이나 웹 서비스 데이터를 분석할 때 사용
      • XML
        • XML 형식의 데이터를 구조적으로 표시
        • XML 기반의 데이터를 쉽게 분석하고자 할 때 사용
  • AutoResponder
    • 특정 조건에 맞는 요청에 대해 자동으로 미리 설정된 응답을 반환하도록 설정 가능
    • 서버 없이도 특정 요청에 대한 응답을 테스트하거나, 특정 동작을 시뮬레이션할 때 사용
  • Composer
    • 수동으로 HTTP/HTTPS Request를 작성하고 전송할 수 있는 기능을 제공
    • 특정 요청을 직접 생성해 서버의 응답을 테스트하거나, 특정 조건을 재현할 때 사용
  • Filters
    • 캡처된 Traffic중 관심 있는 부분만 필터링해서 볼 수 있도록 설정
    • 특정 URL, Domain, Status Code 등 조건에 맞는 Traffic만을 보고 분석할 때 사용
  • Timeline
    • 요청과 응답의 타임라인을 그래픽으로 시각화해 보여줌
    • 요청들이 처리되는 순서와 시간 간격을 분석할 때 유용
  • Fiddler Orchestra Beta
    • 여러 클라이언트의 Traffic을 동시에 분석할 수 있는 기능
    • 대규모 테스트나 여러 사용자 환경을 동시에 모니터링할 때 사용

  • Tranformer
    • 요청이나 응답의 데이터를 변환/조작할 수 있는 도구
    • 특정 데이터 포맷을 다른 포맷으로 변환하거나, 데이터의 인코딩 방식을 변경할 때 사용 ex) Base64로 인코딩된 데이터를 디코딩해 내용 확인
  • ImageView
    • 응답에 포함된 이미지 데이터를 표시해주는 뷰어
    • HTTP 응답으로 반환된 이미지 파일을 직접 확인 가능 → 이미지가 올바르게 전송되었는지, 제대로 렌더링 되는지를 확인할 때 사용
  • Caching
    • 요청이나 응답에 포함된 캐싱 관련 헤더 정보를 보여줌
    • 웹 브라우저나 서버가 특정 리소스를 캐싱하는 방법을 분석할 때 사용 → 캐싱 정책이 제대로 설정되었는지, 혹은 불필요하게 캐싱이 이루어지고 있지 않은지 확인 가능

Fiddler Breakpoint

Fiddler에서 특정 HTTP/HTTPS 요청이나 응답을 가로채고 멈춘 후, 사용자가 직접 그 내용을 수정할 수 있게 해주는 기능

웹 애플리케이션의 특정 요청이나 응답이 서버와 클라이언트 사이에서 오가는 과정을 중간에서 멈춰 세우는 역할

사용 방법

  • Breakpoint 설정
    • Request Breakpoint :
      • ‘Fiddler’에서 특정 조건을 설정해 요청이 서버로 전송되기 전에 멈추도록 할 수 있음 → 이때 멈춘 요청은 사용자가 수정한 후 다시 보내기 가능
    • Response Breakpoint :
      • 서버로부터 클라이언트로 전송되기 전에 응답을 멈춰 세울 수 있음 → 사용자가 수정해 클라이언트로 보내기 가능
  • Breakpoint 설정 방법
    • 상단 메뉴에서 ‘Rules > Automatic Breakpoints’로 이동한 후, ‘Before Requests’ or ‘Before Responses’ 선택
    • 또는 QuickExec 창에서 다음 명령을 입력해 Breakpoint 설정 가능
      • ‘bpu [URL]’ : 지정한 URL에 대해 Request Breakpoint 설정

      • ‘bpm [URL]’ : 지정한 URL에 대해 Response Breakpoint 설정

        ex) ‘bpu /login’ → ‘/login’이 포함된 URL의 Request가 멈추게 됨

  • Breakpoint 해제
    • ‘Rules > Automatic Breakpoints > Disable’ 선택 or QuickExec 창에서 ‘bpclear’ 입력

Fiddler 단축키

  • 일반
    • Ctrl + O: 세션 파일 열기 (Load Archive)
    • Ctrl + S: 현재 세션 저장 (Save Archive)
    • Ctrl + W: 선택된 세션을 워터폴 차트에서 보여줌
    • Ctrl + F: 세션 리스트에서 검색 (Find Sessions)
    • Ctrl + P: Fiddler 설정 (Preferences)
    • Ctrl + L: 로그 창 보기 (Show Log)
    • Ctrl + I: Inspectors 탭 열기 (Inspectors Tab)
    • Ctrl + B: AutoResponder 열기 (AutoResponder Tab)
    • Ctrl + J: Composer 탭 열기 (Composer Tab)
    • Ctrl + U: URL 디코더 창 열기 (URL Decoder Window)
    • Ctrl + Shift + U: TextWizard 창 열기 (TextWizard Window)
    • Ctrl + R: FiddlerScript 편집기 열기 (FiddlerScript Editor)
    • Ctrl + E: 열려있는 모든 창 닫기 (Close All Windows)
    • Ctrl + X: 선택한 세션 삭제 (Delete Selected Sessions)
    • F2: 선택한 세션의 메모 편집 (Edit Session Note)
    • F5: 세션 목록 새로고침 (Refresh)
    • F6: 모든 세션 중지 (Stop All Sessions)
    • F8: 트래픽 캡처 토글 (Toggle Capturing On/Off)
    • F9: 브레이크포인트 설정/해제 (Set/Unset Breakpoint)
    • F11: 요청 및 응답의 상세 정보 보기 (Toggle Inspector Panel)
    • Alt + Enter: 선택한 세션의 상세 정보 보기 (View Selected Session Details)
    • Shift + Delete: 선택한 세션을 영구 삭제 (Permanently Delete Selected Sessions)
  • QuickExec 명령어 창
    • Alt + Q : QuickExec 명령어 창 열기 (Open QuickExec Command Window)
  • 세션 조작
    • Ctrl + Shift + I: 응답 조작 창 열기 (Edit Response)
    • Ctrl + Alt + N: 새 HTTP 요청 작성 (Compose New HTTP Request)
    • Ctrl + Shift + W: 선택한 세션 재실행 (Replay Selected Session)
    • Ctrl + Shift + C: 선택한 세션 복사 (Copy Selected Session(s))
    • Ctrl + V: 복사한 세션 붙여넣기 (Paste Copied Sessions)
  • 뷰 조작
    • Ctrl + 1: WebForms Inspector 탭 열기 (Open WebForms Inspector)
    • Ctrl + 2: Raw Inspector 탭 열기 (Open Raw Inspector)
    • Ctrl + 3: HexView Inspector 탭 열기 (Open HexView Inspector)
    • Ctrl + 4: JSON Inspector 탭 열기 (Open JSON Inspector)
    • Ctrl + 5: XML Inspector 탭 열기 (Open XML Inspector)
    • Ctrl + 6: WebView Inspector 탭 열기 (Open WebView Inspector)
    • Ctrl + 7: Headers Inspector 탭 열기 (Open Headers Inspector)
    • Ctrl + 8: Cookies Inspector 탭 열기 (Open Cookies Inspector)
    • Ctrl + 9: SyntaxView Inspector 탭 열기 (Open SyntaxView Inspector)

0개의 댓글