"이 내용은 절대로 악의적인 목적으로 사용돼서는 안됩니다. 발생되는 모든 책임은 자신에게 있습니다."
앞에서 간단하게 설명한 프록시 개념처럼 Fiddler(피들러)는 컴퓨터와 웹 서버 또는 서버 사이의 HTTP 및 HTTP 트래픽을 기록, 검사 및 변경하는 데 사용되는 디버깅 프록시 서버 도구입니다
쉽게 설명하자면 웹 서버 또는 서버 사이의 HTTP 및 HTTP의 데이터량을 기록하거나 검사 및 변경하는 데 사용됩니다 이는 시스템의 오류를 찾고 해결하는 중계기 역할을 수행하는 서버 도구라고 볼 수 있습니다
트래픽(Traffic) : 서버와 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양
디버깅(Debugging) : 프로그램 개발 단계 중에 발생하는 시스템의 오류를 찾고 그 원인을 해결하는 과정
Fiddler 설치 및 기능 살펴보기
먼저 Fiddler 도구를 설치해 줍니다
[ ↓ 설치 링크 ↓ ]
Fiddler | Web Debugging Proxy and Troubleshooting Solutions
Explore the Fiddler family of web debugging proxy tools and troubleshooting solutions. Easily debug, mock, capture, and modify web and network traffic.
www.telerik.com
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를 이용한 패킷 변조 실습
HACKER FACTORY
실무형워게임으로 초급 중급 문제를 통하여 실력테스트 검증하는 곳 입니다.
hackerfactory.co.kr
우선 패킷 변조를 위해 실습 사이트인 해커 팩토리를 이용하여 진행했습니다 (실제 사이트에서 진행하면 안 됩니다!)
간단히 피들러를 이용하여 패킷을 변조하기 때문에 초급 문제 1번인 쇼핑몰 포인트를 변조하여 인증키를 획득해 봅시다
[문제접속] 버튼을 누르면 해당 상품 사이트로 이동하게 됩니다 여기서 슈퍼 파워 컴퓨터를 구매해야 하는데 나의 포인트가 0원이라 이 컴퓨터를 구매할 수 없는 상태입니다 즉 슈퍼 파워 컴퓨터를 구매하기 전 나의 포인트를 슈퍼 파워 컴퓨터만큼 피들러를 이용하여 변조해야 합니다
우선 피들러를 키고 Capturing된 상태에서 해커 팩토리 사이트를 새로고침하면 피들러에 해당 사이트가 보이게 됩니다
이후 좌측 하단에 브레이크 포인트를 한 번 누르고 (요청(Request) 패킷 활성화) 해커 팩토리에 [즉시구매] 버튼을 누르게 되면 [즉시구매]의 요청 값을 피들러를 통해 붙잡아 둘 수 있습니다 그러면 해커 팩토리 사이트는 무한 로딩으로 보이게 됩니다(패킷을 피들러가 붙잡고 있기 때문에 해당 사이트에서는 웹 서버에 데이터를 아직 요청하지 않은 상태입니다)
피들러 우측 Inspectors 부분에 Raw 항목을 클릭하면 우리가 앞서 배운 HTTP 헤더 구조 방식에서 메시지 본문(Body) 부분에 파라미터 값이 넘겨받는 걸 알 수 있습니다 즉 해당 파라미터 UserPoint 값을 0을 변조하면 슈퍼 파워 컴퓨터를 구매할 수 있습니다
UserPoint=0을 UserPoint=1000000000으로 변조 후 [Run to Completion] 버튼을 클릭하면 변조한 값 그대로 서버에 요청하게 됩니다
다른 방법으로는 Inspectors > WebForms 항목을 클릭하여 Body 부분에 UserPoint를 변경하면 됩니다
결국 나의 포인트 값이 슈퍼 파워 컴퓨터 가격과 동일하므로 정상 결제가 완료되었다고 표시됩니다
(브레이크 포인트 해제는 Shift+F11을 이용하여 off 할 수 있습니다)
이렇게 피들러를 이용하여 사이트에 패킷을 변조할 수 있습니다
[ 선수 학습 내용 ]
[ 선수 학습 ]
웹 구조와 HTTP
📄 HTML 이란 무엇인가? HTML(Hypertext Markup Language)는 프로그래밍 언어가 아니라 마크업 정보를 표현하는 웹 페이지 언어입니다 웹 페이지는 HTML 문서라고 부르고, HTML은 태그로 구성되어 있습니다
mu-sa.tistory.com
HTTP 헤더 구조와 GET과 POST 메소드 방식
이번에는 HTTP 헤더 구조에 대해 살펴보겠습니다 HTTP 헤더 구조 HTTP는 브라우저와 서버가 통신할 수 있도록 하는 프로토콜입니다 이때 HTTP는 서버에 요청(Request) 할 때 요청 행과, 요청 헤더, 메시
mu-sa.tistory.com
프록시(Proxy)란?
프록시(Proxy)란? '대리'나 '대신'의 의미로 클라이언트와 서버 사이에 존재하여 중계기 역할로 통신을 수행하는 것을 말합니다 세부적으로 설명하자면 클라이언트가 프록시 서버로 데이터를 전
mu-sa.tistory.com
OSI 7계층이란?
OSI 7계층이란? 네트워크에서 통신이 일어나는 과정을 7단계를 나눈 것을 의미합니다 그런데 왜 7계층이나 나누었을까? 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때
mu-sa.tistory.com