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

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
apidetector — 멀티스레드 스캐너로, 웹 도메인 및 서브도메인에서 노출된 Swagger/OpenAPI 엔드포인트를 탐지하며, 자동 XSS 탐지, PoC 생성, 오탐 필터링 기능을 갖춘 API 보안 평가 도구입니다. | Kitploit
도구/GitHubGitHub/brinhosa/apidetector
ReconnaissanceVulnerability ScannersAPI Security TestingInformation GatheringWeb Security
GitHubbrinhosa/apidetector

apidetector

멀티스레드 스캐너로, 웹 도메인 및 서브도메인에서 노출된 Swagger/OpenAPI 엔드포인트를 탐지하며, 자동 XSS 탐지, PoC 생성, 오탐 필터링 기능을 갖춘 API 보안 평가 도구입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

APIDetector Web Interface

APIDetector는 다양한 서브도메인에서 노출된 Swagger 엔드포인트를 테스트하고, 고유한 스마트 기능으로 오탐(false-positive)을 탐지하도록 설계된 강력하고 효율적인 도구입니다. API 테스트 및 취약점 스캐닝에 종사하는 보안 전문가와 개발자에게 특히 유용합니다.

BlackHat Arsenal 2024에서 발표됨 (링크)

버전 이력

버전 3의 새로운 기능 (현재)

  • 최신 웹 인터페이스: 사용자 친화적인 인터페이스로 간편한 API 엔드포인트 스캔
  • 실시간 결과: 발견된 엔드포인트와 취약점의 실시간 업데이트
  • 대화형 대시보드: Tailwind CSS와 Alpine.js를 사용한 깔끔하고 반응형 UI
  • 파일 업로드 지원: 텍스트 파일을 업로드하여 여러 도메인/서브도메인을 한 번에 스캔
  • 도메인 유효성 검사: 정규식 패턴 매칭을 통한 입력 검증
  • 유연한 설정: 개선된 기본값을 가진 사용하기 쉬운 스캔 설정 폼
  • 시각적 결과: 스캔 결과와 PoC의 개선된 표시
  • 스크린샷 관리: 취약한 엔드포인트의 스크린샷을 자동으로 캡처하여 표시 (서브도메인당 하나)
  • 타겟 PoC 생성: /swagger-ui/index.html 엔드포인트에 대해서만 개념 증명 생성
  • 반응형 디자인: 모바일부터 데스크탑까지 모든 화면 크기에 최적화
  • 오류 처리: 향상된 오류 피드백 및 로깅
  • 접근성 개선: 향상된 키보드 탐색 및 스크린 리더 지원

버전 2 기능

  • 자동 XSS 탐지: 취약한 Swagger 버전 식별
  • 시각적 PoC 생성: 취약점에 대한 개념 증명 생성
  • 향상된 오류 처리: 더 나은 피드백 및 로깅
  • 성능 향상: 최적화된 스캔 알고리즘

핵심 기능

  • 유연한 입력: 단일 도메인 또는 서브도메인 목록 수용
  • 다중 프로토콜: HTTP 및 HTTPS 프로토콜 모두 테스트
  • 동시성: 더 빠른 결과를 위한 다중 스레드 스캔
  • 스마트 탐지: 고급 오탐 탐지 기능
  • 사용자 정의 설정: 스레드, 사용자 에이전트 등 구성 가능

요구 사항

APIDetector v3는 Python 3.x와 다음 패키지가 필요합니다:

flask         # 웹 프레임워크
requests      # HTTP 클라이언트
playwright    # 스크린샷을 위한 브라우저 자동화
nest_asyncio  # Async IO 지원

모든 종속성은 requirements.txt에 나열되어 있으며 설정 중에 자동으로 설치할 수 있습니다.

첫 설정

필요한 패키지를 설치한 후, Playwright 브라우저를 설치해야 합니다:

python -m playwright install

스크린샷 기능이 제대로 작동하려면 이 작업이 필요합니다.

시작하기

사전 요구 사항

  • Python 3.x (다운로드)
  • pip (Python 패키지 설치 프로그램)
  • Git (저장소 클론용)

설치

  1. 저장소 클론:
git clone https://github.com/brinhosa/apidetector.git
cd apidetector
  1. 가상 환경 생성 및 활성화:
# macOS/Linux:
python3 -m venv venv
source venv/bin/activate

# Windows:
python -m venv venv
venv\Scripts\activate
  1. 종속성 설치:
pip install -r requirements.txt
  1. 브라우저 자동화 설치:
playwright install

웹 인터페이스 (버전 3)

  1. 웹 서버 시작:
python app.py
  1. 기본적으로 서버는 http://127.0.0.1:5000에서 실행됩니다. 다른 포트나 호스트를 지정할 수 있습니다:
python app.py --port 8080 --host 0.0.0.0
  1. 브라우저를 열고 터미널에 표시된 URL로 이동합니다.

  2. 웹 인터페이스 사용:

    • 단일 도메인을 입력하거나 여러 도메인이 포함된 파일 업로드 (한 줄에 하나씩)
    • 스캔 옵션 구성 (스레드 수, 혼합 모드, 사용자 에이전트)
    • '스캔 시작'을 클릭하여 시작
    • 결과가 나타나면 실시간으로 확인
    • 취약한 엔드포인트의 스크린샷이 자동으로 표시됩니다.
  3. 스크린샷은 나중에 참조할 수 있도록 screenshots 디렉토리에 저장됩니다.

사용 방법

APIDetector v3는 최신 웹 인터페이스(v3의 새로운 기능)와 기존 명령줄 인터페이스(원본)라는 두 가지 상호 작용 방법을 제공합니다.

웹 인터페이스

  1. 웹 서버 시작:
python app.py [옵션]

사용 가능한 옵션:

옵션설명기본값
-p, --port포트 번호5000
--host호스트 주소127.0.0.1
-d, --debug디버그 모드 활성화False

예시:

# 기본 설정으로 실행 (localhost:5000)
python app.py

# 사용자 지정 포트로 실행
python app.py -p 8080

# 외부 액세스 허용
python app.py --host 0.0.0.0

# 디버그 모드로 실행
python app.py -d
  1. 웹 인터페이스 접속:

    • 브라우저를 열고 표시된 URL로 이동
    • 대상 도메인 입력 또는 여러 도메인이 포함된 파일 업로드 (한 줄에 하나씩)
    • 스캔 옵션 구성:
      • HTTP/HTTPS 모드
      • 스레드 수 (기본값: 10)
      • 사용자 정의 User-Agent
    • "스캔 시작" 클릭
  2. 결과 보기:

    • 발견된 API 엔드포인트가 진행 상황 추적과 함께 실시간으로 표시됩니다.
    • 취약한 엔드포인트는 자동으로 테스트됩니다.
    • 확인된 취약점에 대해 PoC 스크린샷이 생성됩니다.
    • 스캔이 진행 중인 동안에도 결과를 볼 수 있습니다.

명령줄 인터페이스

명령줄을 사용하여 APIDetector를 실행하세요. 몇 가지 사용 예시는 다음과 같습니다:

  • 일반적인 사용: Chrome 사용자 에이전트를 사용하여 30개 스레드로 서브도메인 목록을 스캔하고 결과를 파일에 저장:

    python apidetector.py -i list_of_company_subdomains.txt -o results_file.txt -t 30 -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
    
  • 단일 도메인 스캔:

    python apidetector.py -d example.com
    
  • 파일에서 여러 도메인 스캔:

    python apidetector.py -i input_file.txt
    
  • 출력 파일 지정:

    python apidetector.py -i input_file.txt -o output_file.txt
    
  • 특정 스레드 수 사용:

    python apidetector.py -i input_file.txt -t 20
    
  • HTTP 및 HTTPS 프로토콜 모두 스캔:

    python apidetector.py -m -d example.com
    
  • 자동 모드로 스크립트 실행 (자세한 출력 억제):

    python apidetector.py -q -d example.com
    
  • 사용자 정의 사용자 에이전트로 스크립트 실행:

    python apidetector.py -d example.com -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
    

APIDetector v2를 사용하는 경우 명령어를 apidetectorv2.py로 바꾸세요.

옵션

  • -d, --domain: 테스트할 단일 도메인.
  • -i, --input: 테스트할 서브도메인이 포함된 입력 파일.
  • -o, --output: 유효한 URL을 쓸 출력 파일.
  • -t, --threads: 스캔에 사용할 스레드 수 (기본값은 10).
  • -m, --mixed-mode: HTTP와 HTTPS 프로토콜 모두 테스트.
  • -q, --quiet: 자세한 출력 비활성화 (기본 모드는 자세한 모드).
  • -ua, --user-agent: 요청에 사용할 사용자 정의 User-Agent 문자열.

APIDetector가 찾는 각 엔드포인트의 위험 세부 정보

Swagger 또는 OpenAPI 문서 엔드포인트를 노출하면 주로 정보 공개와 관련된 다양한 위험이 발생할 수 있습니다. 다음은 잠재적 위험 수준에 따라 정렬된 목록으로, 유사한 엔드포인트를 함께 그룹화했습니다. APIDetector가 스캔합니다:

1. 높은 위험 엔드포인트 (직접 API 문서):

  • 엔드포인트:
    • '/swagger-ui.html', '/swagger-ui/', '/swagger-ui/index.html', '/api/swagger-ui.html', '/documentation/swagger-ui.html', '/swagger/index.html', '/api/docs', '/docs', '/api/swagger-ui', '/documentation/swagger-ui'
  • 위험:
    • 이러한 엔드포인트는 일반적으로 Swagger UI 인터페이스를 제공하며, 모든 API 엔드포인트, 요청 형식, 쿼리 매개변수, 때로는 예제 요청 및 응답에 대한 완전한 개요를 제공합니다.
    • 위험 수준: 높음. 이를 노출하면 잠재적 공격자에게 API 구조와 잠재적 공격 벡터에 대한 상세한 통찰력을 제공합니다.

2. 중간-높은 위험 엔드포인트 (API 스키마/명세):

  • 엔드포인트:
    • '/openapi.json', '/swagger.json', '/api/swagger.json', '/swagger.yaml', '/swagger.yml', '/api/swagger.yaml', '/api/swagger.yml', '/api.json', '/api.yaml', '/api.yml', '/documentation/swagger.json', '/documentation/swagger.yaml', '/documentation/swagger.yml'
  • 위험:
    • 이러한 엔드포인트는 원시 Swagger/OpenAPI 명세 파일을 제공합니다. 여기에는 API 엔드포인트, 경로, 매개변수, 때로는 인증 방법에 대한 상세 정보가 포함됩니다.
    • 위험 수준: 중간-높음. UI 인터페이스보다 더 많은 해석이 필요하지만 API에 대한 광범위한 정보를 여전히 드러냅니다.

3. 중간 위험 엔드포인트 (API 문서 버전):

  • 엔드포인트:
    • '/v2/api-docs', '/v3/api-docs', '/api/v2/swagger.json', '/api/v3/swagger.json', '/api/v1/documentation', '/api/v2/documentation', '/api/v3/documentation', '/api/v1/api-docs', '/api/v2/api-docs', '/api/v3/api-docs', '/swagger/v2/api-docs', '/swagger/v3/api-docs', '/swagger-ui.html/v2/api-docs', '/swagger-ui.html/v3/api-docs', '/api/swagger/v2/api-docs', '/api/swagger/v3/api-docs'
  • 위험:
    • 이러한 엔드포인트는 종종 버전별 문서 또는 API 설명을 참조합니다. API의 구조와 기능에 대한 정보를 드러내어, 공격자가 API의 기능과 잠재적 약점을 이해하는 데 도움이 될 수 있습니다.
    • 위험 수준: 중간. 완전한 문서나 스키마 파일만큼 상세하지 않을 수 있지만, 여전히 공격자에게 유용한 정보를 제공합니다.

4. 낮은 위험 엔드포인트 (구성 및 리소스):

  • 엔드포인트:
    • '/swagger-resources', '/swagger-resources/configuration/ui', '/swagger-resources/configuration/security', '/api/swagger-resources', '/api.html'
  • 위험:
    • 이러한 엔드포인트는 종종 보조 정보, 구성 세부 정보 또는 API 문서 설정과 관련된 리소스를 제공합니다.
    • 위험 수준: 낮음. API 엔드포인트 세부 정보를 직접 드러내지 않을 수 있지만 API 문서의 구성 및 설정에 대한 통찰력을 제공할 수 있습니다.

요약:

  • 가장 높은 위험: 대화형 API 문서 인터페이스를 직접 노출.
  • 중간-높은 위험: 원시 API 스키마/명세 파일 노출.
  • 중간 위험: 버전별 API 문서.
  • 낮은 위험: API 문서의 구성 및 리소스 파일.

권장 사항:

  • 액세스 제어: 이러한 엔드포인트가 공개적으로 접근 가능하지 않거나 최소한 인증 메커니즘으로 보호되도록 하십시오.
  • 환경별 노출: 상세한 API 문서는 프로덕션이 아닌 개발 또는 스테이징 환경에서만 노출하는 것을 고려하십시오.
  • 모니터링 및 로깅: 이러한 엔드포인트에 대한 액세스를 모니터링하고 비정상적인 액세스 패턴에 대한 알림을 설정하십시오.

기여

APIDetector에 대한 기여를 환영합니다! 저장소를 포크하고, 변경하고, 풀 리퀘스트를 제출해 주십시오. 테스트와 기능 제안에 도움을 준 기여자분들께 특별히 감사드립니다:

  • Filipi Pires (Ambassador) - https://www.linkedin.com/in/filipipires/
  • Denis Lourenço - https://www.linkedin.com/in/🚲denis-lourenço-18b07a128/
  • Bruno Francisco Cardoso - https://www.linkedin.com/in/bruno-francisco-cardoso-27445953/

법적 고지

도구 다운로드