Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Charles-Proxy-Mobile-Guide — Android 및 iOS의 HTTP/HTTPS 트래픽을 Charles Proxy로 가로채는 단계별 가이드로, SSL 프록시, CA 인증서 설치, 신뢰 설정을 다룹니다. | Kitploit
도구/GitHubGitHub/thyrlian/charles-proxy-mobile-guide
Android SecurityPacket Sniffing & AnalysisiOS SecurityWeb Proxies & InterceptionMobile App PentestingWeb SecurityMobile SecurityLearning & EducationLearning Paths & Courses

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubthyrlian/charles-proxy-mobile-guide

Charles-Proxy-Mobile-Guide

Android 및 iOS의 HTTP/HTTPS 트래픽을 Charles Proxy로 가로채는 단계별 가이드로, SSL 프록시, CA 인증서 설치, 신뢰 설정을 다룹니다.

저장소 보기
15614318년 전Kitploit 검토 완료

Charles Proxy 모바일 가이드

모바일 해커를 위한 Charles Proxy 가이드 👍

소개

Charles는 HTTP 프록시 / HTTP 모니터 / 리버스 프록시로, 개발자가 자신의 머신과 인터넷 사이의 모든 HTTP 및 SSL / HTTPS 트래픽을 볼 수 있게 해줍니다. 여기에는 요청, 응답 및 HTTP 헤더(쿠키와 캐싱 정보를 포함)가 포함됩니다.

SSL 프록싱

컴퓨터 (macOS)

  • Charles -> Proxy -> SSL Proxying Settings... -> SSL Proxying

    • "Enable SSL Proxying"을 체크합니다
    • 위치 매처 "Host: *", "Port: *"를 추가합니다
  • Charles -> Help -> SSL Proxying -> Install Charles Root Certificate

    • 인증서가 Keychain에 설치되고 자동으로 열립니다
    • Keychain에서 인증서를 더블 클릭합니다
    • Trust를 펼치고, When using this certificate에 대해 Always Trust를 선택합니다
  • Charles가 수신 대기 중인 IP 주소를 확인합니다

    • Charles -> Help -> Local IP Address
    • 또는 명령줄을 통해 WLAN IP 주소를 확인합니다 (바로 클립보드로 복사됨)
      ifconfig | tr "\n" "→" | tr "\r" "→" | grep -Eo "→en0.*?→en[[:digit:]]" | grep -Eo "inet[[:blank:]+]([0-9]{1,3}\.){3}[0-9]{1,3}" | cut -d' ' -f2 | tr -d "\n" | pbcopy && pbpaste
      
    • 또는 명령줄을 통해 LAN IP 주소를 확인합니다 (바로 클립보드로 복사됨)
      ifconfig | tr "\n" "→" | tr "\r" "→" | grep -Eo "→en[[:digit:]].*?active→" | grep -v "en0" | grep -Eo "inet[[:blank:]+]([0-9]{1,3}\.){3}[0-9]{1,3}" | cut -d' ' -f2 | tr -d "\n" | pbcopy && pbpaste
      

Android

  • Charles를 실행하고 계속 실행 상태로 둡니다

  • IP 주소를 확인합니다

  • Android 기기가 Charles와 동일한 네트워크를 사용하는지 확인합니다

  • Android 기기에서

    • Settings -> Wi-Fi -> 사용 중인 네트워크를 길게 클릭 -> Modify network -> Advanced options -> Proxy -> Manual로 이동합니다

      • Proxy hostname = IP 주소
      • Proxy port = 8888
    • 브라우저를 실행하고 https://chls.pro/ssl 을 방문하여 인증서를 저장합니다

    • 시스템이 잠금 화면 PIN 또는 비밀번호를 설정하라고 요청하면, 하나 설정하고 저장합니다
    • 이제 인증서가 설치되었습니다
    • 애플리케이션을 열고 Charles에서 트래픽을 모니터링합니다
  • 컴퓨터에 "A connection attempt to Charles has been made from the host ..."라는 대화 상자가 나타나면 Allow 버튼을 클릭합니다

Android N (7.0, API 레벨 24) 이후

  • Android Studio로 Android 프로젝트를 엽니다
  • Android Studio -> File -> New -> Android resource directory
    • Directory name = xml
    • Directory type = xml
    • Source set = debug
  • Android Studio -> File -> New -> XML resource file
    • File name = network_security_config
    • Root element = network-security-config
  • 위 단계를 수행하면 지정한 루트 요소를 가진 XML 파일이 생성됩니다. 이제 생성된 XML 파일의 기존 내용을 아래 내용으로 교체하여 붙여넣습니다.
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config xmlns:android="http://schemas.android.com/apk/res/android">
        <debug-overrides>
            <trust-anchors>
                <!-- Trust user added CAs while debuggable only -->
                <certificates src="user" />
            </trust-anchors>
        </debug-overrides>
    </network-security-config>
    
  • 그런 다음 debug 소스 세트로 이동하여 디버그 빌드 변형용 AndroidManifest.xml 파일이 없다면 빈 파일을 생성하고 아래와 같은 내용을 추가합니다(결국 매니페스트 병합기가 이를 메인 매니페스트와 병합합니다). 이미 파일이 있다면 application 아래에 networkSecurityConfig 속성만 추가하면 됩니다.
    <?xml version="1.0" encoding="utf-8"?>
    
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools">
    
        <application
            android:networkSecurityConfig="@xml/network_security_config">
        </application>
    
    </manifest>
    

이제 앱의 디버그 빌드 변형에서는 SSL 프록싱이 작동하지만, 릴리스 빌드 변형에서는 작동하지 않습니다.

iOS

  • Charles를 실행하고 계속 실행 상태로 둡니다

  • IP 주소를 확인합니다

  • iOS 기기가 Charles와 동일한 네트워크를 사용하는지 확인합니다

  • iOS 기기에서

    • Settings -> Wi-Fi -> 사용 중인 네트워크 클릭 -> HTTP PROXY를 Manual로 설정

      • Server = IP 주소
      • Port = 8888
    • Safari를 실행하고 https://chls.pro/ssl 에 접속하여(작동하지 않으면 http://www.charlesproxy.com/getssl 시도) 인증서를 설치합니다

    • 애플리케이션을 열고 Charles에서 트래픽을 모니터링합니다
  • 컴퓨터에 "A connection attempt to Charles has been made from the host ..."라는 대화 상자가 나타나면 Allow 버튼을 클릭합니다

iOS 10.3 이후 버전

  • 인증서 설치 후
  • Settings -> General -> About -> Certificate Trust Settings -> Enable Full Trust For Root Certificates -> Charles의 인증서를 활성화합니다

터미널

터미널에서 curl을 통해 디버깅해야 하는 경우:

  • Charles를 프록시로 설정하려면

    export http_proxy=http://127.0.0.1:8888 && export https_proxy=$http_proxy
    
  • 프록시를 제거하려면

    unset http_proxy https_proxy
    

SSL CA 인증서

  • 동일한 컴퓨터에서 실행 중인 Charles Proxy는 동일한 SSL 인증서를 제공합니다.
도구 다운로드