"이 내용은 절대로 악의적인 목적으로 사용돼서는 안됩니다. 발생되는 모든 책임은 자신에게 있습니다."
앞에서 간단하게 설명한 프록시 개념처럼 Fiddler(피들러)는 컴퓨터와 웹 서버 또는 서버 사이의 HTTP 및 HTTP 트래픽을 기록, 검사 및 변경하는 데 사용되는 디버깅 프록시 서버 도구입니다
쉽게 설명하자면 웹 서버 또는 서버 사이의 HTTP 및 HTTP의 데이터량을 기록하거나 검사 및 변경하는 데 사용됩니다 이는 시스템의 오류를 찾고 해결하는 중계기 역할을 수행하는 서버 도구라고 볼 수 있습니다
트래픽(Traffic) : 서버와 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양
디버깅(Debugging) : 프로그램 개발 단계 중에 발생하는 시스템의 오류를 찾고 그 원인을 해결하는 과정
Fiddler 설치 및 기능 살펴보기
먼저 Fiddler 도구를 설치해 줍니다
[ ↓ 설치 링크 ↓ ]
Fiddler 사이트에 접속하면 Fiddler Classic 부분을 선택하여 프로그램을 설치해 주세요
안 쓰는 이메일 입력과 국가를 선택하고 Download For Windows 버튼을 누르면 다운로드가 진행됩니다
설치 후 피들러를 실행하면 AppContainer Configuration 문구가 나오는데 Cancel 버튼을 눌러주세요
그다음 피들러를 실행시킨 상태에서 웹 브라우저를 띄우면 화면과 같이 HTTP라는 프로토콜이 잡히는 걸 알 수 있습니다
하지만 우리는 HTTPS 패킷을 캡처와 수정이 필요하므로 HTTP가 아닌 HTTPS로 변경해야 합니다
상단 [Tools] > [Options] > [HTTPS] 클릭 후 Decrypt HTTPS traffic 항목을 클릭해 주세요
그러면 브라우저에 루트 인증서를 생성하겠다는 내용이 나옵니다 [Yes]를 눌러 다음 항목으로 넘어가세요
그러면 보안 인증서가 나오는데 동일하게 [예]를 눌러 설치하고, 다음 항목도 전부 동의하면 HTTPS의 패킷 캡처가 설정됩니다
이제 피들러를 재시작하면 HTTP > HTTPS로 변경된 모습을 알 수 있습니다
피들러에 주요 기능을 살펴보면 좌측 하단에 Capturing과 브레이크 포인트가 있습니다
먼저 Capturing은 F12 단축키를 이용하거나 Capturing 부분을 클릭하여 on/off를 할 수 있습니다 이 기능을 통해 브라우저를 띄우게 되면 그 브라우저를 모니터링할 수 있습니다
그다음 2 : 빨간 네모 브레이크 포인트는 F11 단축키 또는 브레이크 포인트 아이콘을 눌러 클라이언트가 서버에 요청하는 패킷을 잡아 둘 수 있거나 서버가 클라이언트에게 응답하는 패킷을 변조할 수 있습니다
Break Point 한 번 클릭 시 : 요청(Request) 패킷 활성화 > 클라이언트가 서버에 요청하는 패킷을 잡아 둔다
Break Point 두 번 클릭 시 : 응답(Response) 패킷 활성화 > 서버가 클라이언트에게 응답하는 패킷을 변조할 수 있다
Break Point 세 번 클릭 시 : Break Point를 Off 합니다
주로 요청(Request) 패킷을 활성화하여 중간에 클라이언트가 서버에 전송하는 패킷을 변조하여 사용할 수 있습니다
Fiddler를 이용한 패킷 변조 실습
우선 패킷 변조를 위해 실습 사이트인 해커 팩토리를 이용하여 진행했습니다 (실제 사이트에서 진행하면 안 됩니다!)
간단히 피들러를 이용하여 패킷을 변조하기 때문에 초급 문제 1번인 쇼핑몰 포인트를 변조하여 인증키를 획득해 봅시다
[문제접속] 버튼을 누르면 해당 상품 사이트로 이동하게 됩니다 여기서 슈퍼 파워 컴퓨터를 구매해야 하는데 나의 포인트가 0원이라 이 컴퓨터를 구매할 수 없는 상태입니다 즉 슈퍼 파워 컴퓨터를 구매하기 전 나의 포인트를 슈퍼 파워 컴퓨터만큼 피들러를 이용하여 변조해야 합니다
우선 피들러를 키고 Capturing된 상태에서 해커 팩토리 사이트를 새로고침하면 피들러에 해당 사이트가 보이게 됩니다
이후 좌측 하단에 브레이크 포인트를 한 번 누르고 (요청(Request) 패킷 활성화) 해커 팩토리에 [즉시구매] 버튼을 누르게 되면 [즉시구매]의 요청 값을 피들러를 통해 붙잡아 둘 수 있습니다 그러면 해커 팩토리 사이트는 무한 로딩으로 보이게 됩니다(패킷을 피들러가 붙잡고 있기 때문에 해당 사이트에서는 웹 서버에 데이터를 아직 요청하지 않은 상태입니다)
피들러 우측 Inspectors 부분에 Raw 항목을 클릭하면 우리가 앞서 배운 HTTP 헤더 구조 방식에서 메시지 본문(Body) 부분에 파라미터 값이 넘겨받는 걸 알 수 있습니다 즉 해당 파라미터 UserPoint 값을 0을 변조하면 슈퍼 파워 컴퓨터를 구매할 수 있습니다
UserPoint=0을 UserPoint=1000000000으로 변조 후 [Run to Completion] 버튼을 클릭하면 변조한 값 그대로 서버에 요청하게 됩니다
다른 방법으로는 Inspectors > WebForms 항목을 클릭하여 Body 부분에 UserPoint를 변경하면 됩니다
결국 나의 포인트 값이 슈퍼 파워 컴퓨터 가격과 동일하므로 정상 결제가 완료되었다고 표시됩니다
(브레이크 포인트 해제는 Shift+F11을 이용하여 off 할 수 있습니다)
이렇게 피들러를 이용하여 사이트에 패킷을 변조할 수 있습니다
[ 선수 학습 내용 ]
[ 선수 학습 ]