Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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 보안 평가 도구입니다.

저장소 보기
37945101년 전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와 다음 패키지가 필요합니다:

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

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

첫 설정

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

root@kitploit:~
python -m playwright install

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

시작하기

사전 요구 사항

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

설치

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

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

웹 인터페이스 (버전 3)

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

  2. 웹 인터페이스 사용:

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

사용 방법

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

웹 인터페이스

  1. 웹 서버 시작:
root@kitploit:~
python app.py [옵션]

사용 가능한 옵션:

예시:

root@kitploit:~
# 기본 설정으로 실행 (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개 스레드로 서브도메인 목록을 스캔하고 결과를 파일에 저장:

    root@kitploit:~
    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"
    
  • 단일 도메인 스캔:

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

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

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

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

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

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

    root@kitploit:~
    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 엔드포인트, 경로, 매개변수, 때로는 인증 방법에 대한 상세 정보가 포함됩니다.

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', ,

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/

법적 고지

APIDetector 도구는 테스트 및 교육 목적으로만 엄격히 사용됩니다. APIDetector의 개발자는 이 도구의 사용으로 인한 오용, 의도하지 않은 결과 또는 손해에 대해 책임을 지지 않으며 모든 책임을 부인합니다. APIDetector의 무단, 불법 또는 유해한 사용은 명시적으로 금지됩니다. 최종 사용자는 모든 관련 지방, 주, 연방 및 국제법을 준수할 전적인 책임을 집니다. 이 도구를 사용함으로써 사용자는 스캔하려는 네트워크 또는 시스템을 테스트하는 데 필요한 권한을 보유하고 있음을 인정하며, 사용으로 인해 발생하는 모든 청구로부터 개발자를 면책하는 데 동의합니다. 최종 사용자는 이 도구의 사용이 테스트 중인 네트워크 또는 시스템을 규율하는 법적 제한 또는 서비스 약관을 위반하지 않도록 할 전적인 책임이 있습니다.

면책 조항: APIDetector 도구 사용 APIDetector 도구는 합법적인 테스트 및 교육 목적으로만 독점적으로 설계되었습니다. 명시적이든 묵시적이든 어떠한 종류의 보증 없이 "있는 그대로" 제공됩니다. APIDetector의 개발자와 배포자는 이 도구의 사용으로 인한 오용, 의도하지 않은 결과 또는 손해에 대한 책임을 명시적으로 부인합니다. 중요 법적 고지: APIDetector의 무단, 불법 또는 비윤리적 사용은 엄격히 금지됩니다. 사용자는 관련된 모든 지방, 주, 연방 및 국제법뿐만 아니라 참여하는 네트워크 또는 시스템을 규율하는 서비스 약관을 준수할 전적인 책임이 있습니다. APIDetector를 사용함으로써 사용자는 대상 네트워크 또는 시스템을 테스트하는 데 필요한 권한을 보유하고 있음을 확인합니다. 위험 감수 및 면책: APIDetector를 다운로드, 설치 또는 사용함으로써 사용자는 사용과 관련된 법적 결과에 대한 전적인 책임을 집니다. APIDetector의 개발자와 배포자는 사용으로 인해 발생하는 법적 결과, 손해 또는 제3자 청구에 대해 책임을 지지 않습니다. 사용자는 자신의 행동과 관련된 모든 청구, 법적 비용 또는 책임으로부터 개발자와 배포자를 면책하고 해를 끼치지 않기로 동의합니다.

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.

감사의 말

  • 테스트, 제안 및 개선에 도움을 주신 모든 기여자분들께 감사드립니다.
  • 저자: Rafael B. Brinhosa - https://www.linkedin.com/in/brinhosa/
도구 다운로드
옵션설명기본값
-p, --port포트 번호5000
--host호스트 주소127.0.0.1
-d, --debug디버그 모드 활성화False
  • 위험 수준: 중간-높음. UI 인터페이스보다 더 많은 해석이 필요하지만 API에 대한 광범위한 정보를 여전히 드러냅니다.
  • '/api/swagger/v2/api-docs'
    '/api/swagger/v3/api-docs'
  • 위험:
    • 이러한 엔드포인트는 종종 버전별 문서 또는 API 설명을 참조합니다. API의 구조와 기능에 대한 정보를 드러내어, 공격자가 API의 기능과 잠재적 약점을 이해하는 데 도움이 될 수 있습니다.
    • 위험 수준: 중간. 완전한 문서나 스키마 파일만큼 상세하지 않을 수 있지만, 여전히 공격자에게 유용한 정보를 제공합니다.