프록시(Proxy)

  • 프록시(Proxy)중간에서 대신 요청을 전달하고 응답을 받아주는 중계 서버입니다.
  • 클라이언트(나)와 서버(목표) 사이에 위치해서, 내가 바로 서버에 접속하는 대신 프록시가 대신 요청하고, 응답도 프록시가 받아서 나에게 전달합니다.
  • 프록시의 사용 목적
    1. 익명성 보장 (IP 숨기기)
    2. 접근 차단 우회 (지역 제한 콘텐츠 접속 등)
    3. 캐싱 (속도 향상)
    4. 보안 검사 (기업 환경 등에서 웹 필터링)

 

 

웹 프록시 툴 종류

 

툴 이름 설명
Burp Suite 가장 유명한 웹 프록시 도구. 보안 테스트 시 필수. 트래픽 가로채기, 수정, 리플레이 가능.
OWASP ZAP 오픈소스 무료 프록시 툴. 자동 스캐닝 기능 탑재. 초보자에게도 친숙.
Fiddler 윈도우에서 많이 쓰는 HTTP 디버깅 프록시 툴. HTTPS 트래픽도 분석 가능.
Charles Proxy 주로 모바일 앱 트래픽 분석 시 사용. 직관적인 UI 제공.
Mitmproxy 터미널 기반 강력한 프록시. 스크립트화와 자동화에 강점.

 

 

 

프록시 서버

  • 프록시 서버는 앞서 설명한 프록시 역할을 하는 서버 그 자체입니다.
  • 프록시 서버의 종류
    - 포워드 프록시 (Forward Proxy): 내부 사용자가 외부에 접속할 때 사용
    - 리버스 프록시 (Reverse Proxy): 외부 사용자가 내부 서버에 접속할 때, 서버 앞단에서 요청을 받아 처리
    - 오픈 프록시 (Open Proxy): 누구나 사용할 수 있도록 개방된 프록시

 

 

VPN vs Proxy

  • VPN은 강력한 보안과 전체 네트워크 적용을 원할 때 사용합니다.
  • 프록시는 특정 앱만 IP 바꾸거나 빠르게 테스트할 때 사용합니다.
구분 VPN Proxy
암호화 전체 트래픽 암호화 (고급 보안) 대부분 암호화 안 함 (HTTP 프록시 기준)
적용 범위 컴퓨터/디바이스 전체 트래픽 특정 앱 또는 브라우저 트래픽만
속도 상대적으로 느릴 수 있음 (암호화 때문에) 보통 빠름 (경량화되어 있음)
익명성 IP 숨기기 + 트래픽 암호화 IP 숨기기만 (보안성 낮음)
사용 용도 공공 Wi-Fi 보안, 국가 차단 우회 등 가벼운 IP 우회, 테스트 목적 등

 

 


실습

  • 웹프록시 툴 설치하기
    - 블로그에 Brup Suite 설치 방법 작성해두었습니다. 바로가기
 

Burp Suite 설치 방법

Burp Suite 설치 방법입니다. http://portswigger.net/burp 접속합니다. Burp Suite - Application Security Testing Software Get Burp Suite. The class-leading vulnerability scanning, penetration testing, and web app security platform. Try for free to

security-student.tistory.com

 

  • 웹프록시 툴을 이용하여 패킷 변조해보기
    1. 브라우저 프록시 설정
        - Burp의 기본 프록시는 127.0.0.1:8080
        -  브라우저에서 프록시 설정을 Burp로 맞추면 브라우저 트래픽이 Burp로 전달됩니다.
        -  HTTPS 트래픽도 분석하려면 Burp의 CA 인증서를 브라우저에 설치해야 합니다.
    2. Intercept (인터셉트) 켜기
        -  Burp > Proxy > Intercept 탭 > "Intercept is on" 으로 활성화
        -  이제 브라우저 요청이 멈추고 Burp에서 보입니다.
    3. 패킷 수정 (변조)
        -  가로챈 HTTP 요청이나 응답을 자유롭게 수정 가능

1. 위 주소 접속화면이고, POST 요청으로 변경해야 하므로 Brup Suite를 실행합니다.

 

 

2. Brup Suite 실행 후 Intercept off를 클릭하여 Open browser를 클릭해서 브라우저를 접속합니다. 주소를 입력하여 확인 해보면 첫번째 줄에 GET / HTTP/1.1 을 확인할 수 있습니다.

 

 

3. 주소를 입력하여 확인 해보면 첫번째 줄에 GET / HTTP/1.1 을 확인할 수 있습니다.

 

4. GET /HTTP/1.1를 POST / HTTP/1.1로 변경하여 Forward 버튼을 클릭하여 Forward를 진행합니다.

 

5. 아래의 화면을 확인할 수 있습니다.

 

6. POST 요청의 'request' 파라미터를 'get-flag'로 설정해야하므로 요청 들어온 것을 오른쪽 클릭하여 Send to Repater를 클릭 후 상단에 Prpeator를 클릭하여 이동합니다.

 

7. 아래와 같이 화면을 확인할 수 있습니다.

 

8. 'request' 파라미터를 'get-flag'로 설정해야하므로 오른쪽 Inspector의 Request body paramters를 클릭하여 Name : request, Value : get-flag 를 입력하여 저장 후 Send 버튼을 클릭합니다.

 

9. 아래와 같이 Response 가 변경된 것을 확인할 수 있고 Request를 복사하여 Proxy로 이동하여 Request를 변경 후 Forward 버튼을 클릭하여 Forward를 진행합니다.

 

 

10. 아래의 화면을 확인할 수 있습니다.

 

11. User-Agent 헤더를 bot으로 설정하기 위해 위에 설명한 방법으로 다시 진행하여 Prpeator로 이동 후 Request에서 User-Agent 의 값을 bot로 변경하여 Send를 클릭합니다.

 

12. 아래와 같이 Response 가 변경된 것을 확인할 수 있고 Request를 복사하여 Proxy로 이동하여 Request를 변경 후 Forward 버튼을 클릭하여 Forward를 진행합니다.

 

13. 아래의 화면을 확인할 수 있습니다.

 

 

14. API_KEY가 SUp3r_STr0000ng_k3y인 Cookie 설정하기 위해 위에 설명한 방법으로 다시 진행하여 Prpeator로 이동 후 Request에서 Cookie: API_KEY=SUp3r_STr0000ng_k3y 입력하거나 Inspector의 Request cookies에 Name : API_KEY, Value : Up3r_STr0000ng_k3y를 입력 후 Add를 클릭합니다.

 

15. 아래와 같이 Response 가 변경된 것을 확인할 수 있고 Request를 복사하여 Proxy로 이동하여 Request를 변경 후 Forward 버튼을 클릭하여 Forward를 진행합니다.

 

16. SUCCESS를 확인하며 PLAG 값을 확인할 수 있습니다.

+ Recent posts