
15가지 공격 유형, 108개 이상의 페이로드, 지능형 퍼징, BOLA/IDOR 탐지, AI 통합 및 자동화된 정찰을 갖춘 API 보안 테스트용 Burp Suite 확장 프로그램입니다. Nuclei, Turbo Intruder 및 외부 도구 통합을 통해 REST/GraphQL/SOAP API를 지원합니다. OWASP API Top 10을 포괄합니다.
이 프로젝트가 여러분의 작업에 도움이 된다면, 지속적인 유지보수와 새로운 기능 개발을 지원해 주세요.
ETH 기부 지갑
0x11282eE5726B3370c8B480e321b3B2aA13686582
위의 QR 코드를 스캔하거나 지갑 주소를 복사하세요.
전문가 수준의 Burp Suite 확장 프로그램으로, 포괄적인 API 정찰, 지능형 퍼징, AI 기반 보안 테스트를 제공합니다.
BurpAPISecuritySuite는 일반적으로 10개 이상의 개별 확장 프로그램이 필요한 기능을 단일 최적화 확장 프로그램으로 통합합니다. 이러한 아키텍처 결정은 상당한 성능 이점을 제공합니다:
메모리 효율성: 여러 Burp 확장 프로그램을 동시에 실행하면 상당한 메모리 부담이 발생합니다. 각 확장 프로그램은 자체 상태, UI 구성 요소, 이벤트 리스너를 유지합니다. 탭이 여러 개인 단일 확장 프로그램은 리소스를 효율적으로 공유하고 전체 메모리 사용량을 줄입니다.
API 오버헤드 감소: Burp의 확장 API는 로드된 모든 확장 프로그램의 콜백을 처리합니다. 확장 프로그램이 10개 이상이면 각 HTTP 요청이 모든 확장 프로그램에서 콜백을 트리거하여 곱셈적 오버헤드를 만듭니다. 확장 프로그램이 하나라면 콜백 체인도 하나가 되어 CPU 사용량을 크게 줄이고 응답성을 향상시킵니다.
공유 컨텍스트: 통합 탭은 캡처된 트래픽 데이터를 공유하여 중복 처리를 제거합니다. Recon 탭이 한 번 캡처하면 다른 모든 탭(퍼저, 인증 재생, 수동 발견 등)은 요청을 다시 파싱하지 않고 동일한 데이터셋에서 작업합니다.
더 빠른 시작: 확장 프로그램 하나를 로드하는 것은 10개 이상을 로드하는 것보다 훨씬 빠릅니다. Burp는 UI 구성 요소를 초기화하고 콜백을 등록하며 리소스를 반복 대신 한 번만 할당합니다.
더 나은 안정성: 확장 프로그램이 적을수록 잠재적 충돌, 버전 불일치, 호환성 문제가 줄어듭니다. 단일 코드베이스는 테스트, 디버깅, 유지보수가 더 쉽습니다.
이 설계 철학은 복잡한 다중 확장 프로그램 구성이 필요한 포괄적인 API 보안 테스트 기능을 제공하면서 성능과 사용자 경험을 우선시합니다.






Nuclei/HTTPX/Katana 커버리지를 보완하도록 조정된 통합 갭필(gap-fill) + 딥서치 실행기입니다.
참고: ApiHunter는 MIT 라이선스의 오픈소스 도구로, BurpAPISecuritySuite의 중요한 보완 도구입니다. 다른 스캐너가 남긴 공백을 메우는 고급 API 정찰 기능을 제공합니다. 설치 및 사용 방법은 https://github.com/Teycir/ApiHunter 를 참조하세요.








BurpAPISecuritySuite는 다음과 같은 기능을 제공하는 완전한 API 보안 테스트 툴킷입니다:
/users/123 → /users/{id}).subfinder + dnsx + httpx로 퍼스트파티 범위 확장.BurpAPISecuritySuite.pyRecon 탭에서 캡처된 엔드포인트와 발견 사항을 확인합니다.Passive Discovery에서 Run Differential을 클릭하여 점수 없는 반사실적 검사를 실행하거나, Run Invariants를 클릭하여 전체 딥 로직 스택을 실행합니다.Recon에서 Refresh Invariants를 클릭하여 내보내기 전에 Differential + Sequence + Golden + State Matrix + Token Lineage + Parity Drift 결과를 새로고침합니다.Recon에서 Export AI Bundle을 클릭하여 전체 탭 AI 컨텍스트를 생성합니다.excalibur-burp-bridge/v1 번들을 불러옵니다(Excalibur는 독점 도구: https://github.com/Teycir/Excalibur).tool, method, host/path, status, len, type, tags).Max Memory를 초과하면 가장 오래된 Logger 행을 정리합니다(기본 20,000행).on/off 모델).Grep Values..., Tag Rules..., 저장된 정규식 워크플로(Save Regex + 저장된 필터).Name: value 형식으로 프로필 헤더 설정Copy URL(s)(또는 마우스 오른쪽 클릭 Copy Selected URL(s))로 전체 URL 복사Result 헤더를 클릭해 심각도 순 정렬, 또는 Sort Severity로 빠르게 CRITICAL -> HIGH -> MEDIUM -> OK 정렬All 또는 카테고리별 검사(API3, API4, API5, API6, API9, API10) 실행All Endpoints, Filtered View 또는 현재 호스트 범위 분석auth -> object access -> state change) 구축Selected Endpoint, Filtered View 또는 All Endpoints 스캔Proxy/Live Capture, Imported HAR/Replay로 제한하거나 둘 다 함께 스캔All API Sensitive, Secrets & Tokens, PII & Financial, Credentials & Session, Infra/Internal Exposureapihunter 바이너리 경로 구성(기본 자동 감지는 런타임 PATH를 검색한 다음 셸 프로브(bash -lc, bash -ic)로 command -v를 통해 탐색하고 발견된 절대 경로를 복사함. 정적 폴백 후보는 없음)Run ApiHunter 실행 시 스위트가 PATH에서 apihunter를 다시 확인하고(프로세스 + 셸 프로브) 사용 가능한 경우 필드를 확인된 절대 바이너리로 자동 업데이트함Quick (Desktop Preset), Balanced (Desktop Preset)(기본값), Deep (Desktop Preset)Unauth Only, Auth Only, (기본값). 이중 패스 모드에서 중복 제거된 기본 URL은 및 대상 목록으로 분할되며 각 패스는 자체 목록에서 실행됩니다. 인증 연관은 요청 인증 헤더와 비헤더 인증 신호(요청 메타데이터의 , 토큰/쿠키/세션 마커)를 모두 사용합니다.Unauth Only, Auth Only, Auth + Unauth(기본값). 이중 패스 모드에서 중복 제거된 기본 URL은 auth-associated 및 unauth-associated 대상 목록으로 분할되며 각 패스는 자체 목록에서 실행됩니다. 인증 연관은 요청 인증 헤더와 비헤더 인증 신호(요청 메타데이터의 auth_detected, 토큰/쿠키/세션 마커)를 모두 사용합니다. 인증 컨텍스트 파생은 사용 가능한 최상의 Authorization 헤더, 상위 인증 유사 헤더(X-API-Key, Api-Key, ApiKey, X-Auth-Token, X-Access-Token)를 캡처하고 요청 Cookie 헤더에서 쿠키 쌍을 파생합니다.Fast, , API 디스커버리 스캔 프리셋kr 바이너리 경로 구성.kite 파일 또는 apiroutes-260227:20000 같은 Assetnote 별칭 사용Fast, Balanced, Deep 라우트 스캔 튜닝. 기본적으로 Balanced가 선택되어 더 넓은 1차 적용 범위를 제공하며, Fast는 더 빠른 트라이지를 위해 10분 상한을 유지하고 Deep은 더 적은 호스트에 15분 상한을 사용해 더 완전한 스캔을 수행Custom Targets... 팝업에서 Kiterunner 입력을 강제하는 체크박스scheme://host[:port]/)를 포함한 멀티라인 편집기(최대 20개 항목, 줄당 하나)sqlmap 경로 구성Fast, Balanced, Deep 명령 튜닝 프리셋dalfox 경로 구성Fast, Balanced, Deep 명령 튜닝 프리셋subfinder/dnsx/httpx용 Fast, Balanced, Deep 스테이지 튜닝subfinder → dnsx → httpx를 실행하여 활성 API 자산 디스커버리 수행BOLA (Broken Object Level Authorization)
IDOR (Insecure Direct Object Reference)
SQL Injection
XSS (Cross-Site Scripting)
NoSQL Injection
JWT Exploitation
GraphQL Abuse
SSTI (Server-Side Template Injection)
Race Conditions
Business Logic
WAF Bypass
Path Traversal
SSRF (Server-Side Request Forgery)
XXE (XML External Entity)
{ "metadata": { "timestamp": "20240115_143022", "total_endpoints": 15, "total_requests": 47 }, "endpoints": [ { "endpoint": "GET:/api/users/{id}", "method": "GET", "normalized_path": "/api/users/{id}", "host": "api.example.com", "sample_count": 3, "parameters": { "url": ["id"], "body": [], "cookie": ["session"], "json": [] }, "auth_methods": ["Bearer Token"], "response_codes": [200, 404], "content_types": ["application/json"], "api_patterns": ["REST API", "JSON API", "CRUD: GET"], "sample_requests": [...] } ], "api_structure": { "api_types": ["REST API", "JSON API"], "http_methods": ["GET", "POST", "PUT", "DELETE"], "auth_methods": ["Bearer Token", "API Key"], "base_paths": ["/api/", "/v1/"] }, "security_observations": [ { "type": "Potential IDOR/BOLA", "severity": "Critical", "count": 5, "examples": ["GET:/api/users/{id}", "GET:/api/orders/{id}"], "recommendation": "Implement object-level authorization checks" }, { "type": "Unauthenticated Endpoints", "severity": "High", "count": 3, "examples": ["GET:/api/health", "GET:/api/version"] }, { "type": "Weak Encryption (Base64)", "severity": "High", "count": 2, "examples": [{"endpoint": "POST:/api/auth", "types": ["Base64"]}], "recommendation": "Use proper encryption (AES-256, TLS 1.3)" } ], "llm_prompt": "# API Red Team Extension Generation\n\n..." }
## 데이터 및 내보내기
### 캡처되는 항목
### 엔드포인트별
- HTTP 메서드 및 정규화된 경로
- 호스트, 프로토콜, 포트
- 쿼리 문자열 및 모든 매개변수 유형(URL, 본문, 쿠키, JSON)
- 요청/응답 헤더
- 요청/응답 본문(20KB로 잘림)
- 응답 상태 코드
- 콘텐츠 유형
- 감지된 인증 방법
- API 패턴(REST, GraphQL, SOAP 등)
### 분석
- API 구조 개요(유형, 메서드, 인증, 기본 경로)
- 보안 관찰 사항(인증되지 않은 엔드포인트, 민감한 데이터)
- 엔드포인트 그룹화 및 중복 제거
- 각 엔드포인트에 대한 샘플 요청
## 통합
### LLM 프롬프트 통합
내보내기에는 다음을 우선시하는 AI 지원 프롬프트와 컨텍스트가 포함됩니다.
1. 민감한 데이터 익스플로잇 경로(교차 계정/테넌트 노출)
2. 무단 상태 변경(워크플로/수명 주기 남용)
3. 중복되기 쉬운 일반적인 발견 사항보다 명확하지 않은 로직 결함
4. 재현 가능한 증거 델타 및 누락된 데이터 요청
기본 AI 아티팩트:
- `ai_bundle.json`
- `ai_all_tabs_context.json`
- `ai_openai_request.json`
- `ai_anthropic_request.json`
- `ai_ollama_request.json`
### 동반 리포지토리 워크플로(APIPentesting)
`BurpAPISecuritySuite`와 `APIPentesting`은 함께 사용하도록 설계되었습니다.
1. BurpAPISecuritySuite에서 트래픽을 캡처하고 분석합니다.
2. `Recon`에서 `Export AI Bundle`을 클릭합니다.
3. APIPentesting에서 다음을 실행합니다.
- `./scripts/scan-nuclei-prioritize.sh /path/to/ai_bundle.json <scan-name>`
4. `Reports/<scan-name>-<timestamp>/priority.json` 및 `results.jsonl`을 검토합니다.
5. 민감한 데이터 우선 분류를 위해 AI UI와 함께 `scripts/AI_TRIAGE_PROMPT.md`(APIPentesting에서 제공)를 사용합니다.
역할 분담:
- BurpAPISecuritySuite: Burp 내 캡처, 강화, 심층 로직 분석, AI/내보내기 패키징.
- APIPentesting: 외부 스캐닝 오케스트레이션, 순위 지정, AI 지원 익스플로잇 분류.
## 워크플로 예시
### 1. AI 기반 페이로드 생성```bash
# 1. Capture API traffic in Burp
# 2. (Optional) Run Passive Discovery → "Run Invariants"
# 3. (Optional) In Recon, click "Refresh Invariants"
# 4. In Recon, click "Export AI Bundle"
# 5. Run APIPentesting scan from the exported bundle:
# ./scripts/scan-nuclei-prioritize.sh /path/to/ai_bundle.json burp-ai-scan
# 6. Feed Reports/.../priority.json + results.jsonl to AI with
# scripts/AI_TRIAGE_PROMPT.md for sensitive-data-first exploit triage.
### 3. Auto-Positions를 사용하는 Burp Intruder```bash
# 1. Generate fuzzing attacks
# 2. Click "Send to Intruder"
# 3. Burp Intruder opens with §markers§ pre-configured
# 4. Load payloads from exported payloads.json
# 5. Launch attack
~/burp_APIRecon/ ├── FullExport_TIMESTAMP/ │ ├── api_analysis.json │ └── excalibur_bridge_bundle.json ├── HostExport_HOSTNAME_TIMESTAMP/ │ ├── api_analysis.json │ └── excalibur_bridge_bundle.json ├── Payloads_TIMESTAMP/ │ └── payloads.json (idor, sqli, xss, nosqli, ssrf, xxe, ssti, deserialization, waf_bypass) ├── AI_Context_TIMESTAMP/ │ ├── ai_context.json │ ├── ai_bundle.json │ ├── ai_all_tabs_context.json │ ├── ai_vulnerability_context.json │ ├── ai_behavioral_analysis.json │ ├── ai_counterfactual_differential_findings.json │ ├── ai_counterfactual_differential_summary.json │ ├── ai_sequence_invariant_findings.json │ ├── ai_sequence_evidence_ledger.json │ ├── ai_golden_ticket_findings.json │ ├── ai_golden_ticket_ledger.json │ ├── ai_state_transition_findings.json │ ├── ai_state_transition_ledger.json │ ├── ai_token_lineage_findings.json │ ├── ai_token_lineage_ledger.json │ ├── ai_parity_drift_findings.json │ ├── ai_parity_drift_ledger.json │ ├── ai_openai_request.json │ ├── ai_anthropic_request.json │ └── ai_ollama_request.json ├── SequenceInvariant_Export_TIMESTAMP/ │ ├── counterfactual_differential_findings.json │ ├── counterfactual_differential_summary.json │ ├── sequence_invariant_findings.json │ ├── sequence_evidence_ledger.json │ ├── golden_ticket_findings.json │ ├── golden_ticket_ledger.json │ ├── state_transition_findings.json │ ├── state_transition_ledger.json │ ├── token_lineage_findings.json │ ├── token_lineage_ledger.json │ ├── parity_drift_findings.json │ └── parity_drift_ledger.json ├── TurboIntruder_TIMESTAMP/ │ ├── race_condition.py │ ├── bola_enum.py │ └── jwt_brute.py ├── VersionScan_Export_TIMESTAMP/ │ └── version_scan.txt ├── ParamMiner_Export_TIMESTAMP/ │ └── param_mining.txt └── NucleiTargets_TIMESTAMP/ └── targets.txt
### 모범 사례
### 정찰 단계
- **인증 트래픽 캡처**: 먼저 로그인하여 보호된 엔드포인트를 캡처하세요
- **모든 기능 실행**: 전체 적용 범위를 위해 애플리케이션 전체를 클릭하며 탐색하세요
- **여러 역할 사용**: BOLA 탐지를 위해 관리자, 사용자, 게스트 권한으로 트래픽을 캡처하세요
- **통계 검토**: 통계 패널에서 Critical/High/Medium 수치를 확인하세요
### 퍼징 단계
- **"All"부터 시작**: 먼저 포괄적인 공격 캠페인을 생성하세요
- **고위험 집중**: 중요 엔드포인트에 대해 심각도별로 필터링하세요
- **탐지 검증**: Intruder로 보내기 전에 생성된 공격을 검토하세요
- **배치 테스트**: 경쟁 조건(race condition) 및 고속 열거에 Turbo Intruder를 사용하세요
### AI 통합
- **컨텍스트 조기 내보내기**: 초기 캡처 후 AI 컨텍스트를 생성하세요
- **내보내기 전 Invariants 실행 및 새로고침**: AI로 데이터를 보내기 전에 새로운 딥 로직 증거(Differential + Sequence + Golden + State Matrix + Token Lineage + Parity Drift)를 추가하세요
- **페이로드 반복**: AI 생성 페이로드를 사용하고, 테스트하고, 프롬프트를 개선하세요
- **기법 결합**: AI 페이로드를 내장 페이로드 라이브러리와 병합하세요
### 자동화
- **Nuclei 통합**: 빠른 취약점 검증을 위해 Nuclei를 실행하세요
- **대상 내보내기**: ffuf, wfuzz 또는 사용자 정의 스크립트와 함께 대상 목록을 사용하세요
- **CI/CD 통합**: 회귀 테스트를 위해 내보내기를 자동화하세요
## 기술 정보
### 기술 세부 사항
- **정규화**: 숫자 ID, UUID, ObjectID를 플레이스홀더로 대체합니다
- **중복 제거**: 메서드 + 정규화된 경로별로 고유 엔드포인트를 추적합니다
- **잘라내기**: 본문은 20KB로 제한되고, 샘플은 엔드포인트당 3개로 제한됩니다
- **인증 탐지**: Bearer, Basic, API Key, 세션 쿠키를 식별합니다
- **패턴 매칭**: REST, GraphQL, SOAP에 대한 정규식 기반 탐지
### 제한 사항
- WebSocket 트래픽을 캡처하지 않습니다
- 이진 응답은 완전히 분석되지 않습니다
- 대용량 응답은 잘립니다(20KB 제한)
- Jython(Python 2.7 구문)이 필요합니다
## 사용 사례
- **API 침투 테스트**: 108개 이상의 공격 벡터를 사용한 포괄적인 퍼징
- **버그 바운티 헌팅**: 자동화된 BOLA/IDOR 탐지 및 악용
- **보안 연구**: 고급 공격 기법(경쟁 조건, JWT, GraphQL)
- **레드 팀 작전**: 고속 공격을 위한 Turbo Intruder 스크립트
- **AI 지원 테스트**: ChatGPT/Claude로 사용자 정의 페이로드 생성
- **CI/CD 보안**: 자동화된 회귀 테스트를 위한 대상 내보내기
- **교육 및 학습**: 실제 사례를 통해 API 취약점 학습
## 문서
- [전체 문서 색인](https://github.com/teycir/burpapisecuritysuite/blob/HEAD/docs/DOCUMENTATION-INDEX.md)
- [아키텍처 개요](https://github.com/teycir/burpapisecuritysuite/blob/HEAD/docs/Architecture.md)
- [GraphQL 퍼징 검증](https://github.com/teycir/burpapisecuritysuite/blob/HEAD/docs/GRAPHQL_VALIDATION.md)
- [Logger++ 태그 참조](https://github.com/teycir/burpapisecuritysuite/blob/HEAD/docs/loggerpp_tags.md)
## 자주 묻는 질문
### 일반 질문
**Q: Burp Suite Community Edition에서도 작동하나요?**
A: 네! 모든 핵심 기능은 Community와 Professional 에디션 모두에서 작동합니다. 그러나 Scanner 통합과 같은 일부 고급 Burp 기능은 Pro가 필요합니다.
**Q: 확장 프로그램이 트래픽을 캡처하지 않는 이유는 무엇인가요?**
A: 다음 사항을 확인하세요:
- Recon 탭에서 Auto-Capture 토글이 활성화되어 있는지
- Burp의 프록시를 통해 탐색하고 있는지
- 대상이 HTTP/HTTPS 트래픽을 보내고 있는지(WebSocket은 지원되지 않음)
- 오류 메시지가 있는지 Activity Log를 확인하세요
**Q: Jython은 어떻게 설치하나요?**
A: https://www.jython.org/download에서 Jython Standalone JAR을 다운로드한 후 Burp에서: Extender → Options → Python Environment → Select File → jython-standalone-*.jar 파일을 선택하세요.
### 성능 및 제한
**Q: 몇 개의 엔드포인트를 처리할 수 있나요?**
A: 확장 프로그램은 500개 이상의 엔드포인트를 효율적으로 처리하며, 한도(800개)에 도달하면 자동으로 순환됩니다. 오래된 엔드포인트는 자동으로 제거됩니다.
**Q: 응답이 20KB로 잘리는 이유는 무엇인가요?**
A: 유용한 분석 컨텍스트를 유지하면서 대용량 응답으로 인한 메모리 문제를 방지하기 위해서입니다. 현재 기본 본문 캡처 상한은 20KB입니다.
**Q: 엔드포인트당 샘플 한도를 늘릴 수 있나요?**
A: 네, Recon 탭의 "Samples" 드롭다운을 사용하세요(엔드포인트당 샘플 1, 3, 5, 10개).
### 퍼징 및 공격
**Q: BOLA/Auth Bypass 공격이 보이지 않는 이유는 무엇인가요?**
A: 이러한 공격에는 인증된 엔드포인트가 필요합니다. 다음을 확인하세요:
- 먼저 애플리케이션에 로그인
- 인증된 상태에서 트래픽 캡처
- Bearer 토큰, API 키 또는 세션 쿠키가 있는 엔드포인트 찾기
**Q: 생성된 공격은 어떻게 사용하나요?**
A: 세 가지 방법이 있습니다:
1. **Burp Intruder**: 자동화된 테스트를 위해 "Send to Intruder" 클릭
2. **Turbo Intruder**: 고속 공격을 위한 스크립트 내보내기
3. **수동**: 명령줄 테스트를 위해 "Copy as cURL" 사용
**Q: "All"과 특정 공격 유형의 차이점은 무엇인가요?**
A: "All"은 모든 취약점 유형에 걸쳐 포괄적인 공격을 생성합니다. 특정 유형(예: "SQLi")은 표적 테스트를 위해 해당 취약점 클래스에만 집중합니다.
**Q: GraphQL 엔드포인트를 효과적으로 테스트하려면 어떻게 해야 하나요?**
A: 세 가지 방향의 접근 방식입니다:
1. **Fuzzer 탭**: 40개 이상의 GraphQL 전용 페이로드(introspection, batching, directive overloading, field suggestion)를 위해 "GraphQL" 공격 유형 선택
2. **Nuclei 탭**: 오구성 및 탐지를 다루는 29개 이상의 템플릿을 위해 `-tags graphql`로 실행
3. **수동 테스트**: "Copy as cURL"을 사용하여 introspection, batching, depth 공격을 수동으로 테스트
Fuzzer는 GraphQL 엔드포인트를 자동으로 감지하고 다음을 위한 공격을 생성합니다:
- introspection을 통한 스키마 추출
- batching(배열/별칭) 및 depth 공격을 통한 DoS
- introspection이 비활성화된 경우 스키마 발견을 위한 필드 제안
- 디렉티브 오버로딩(@skip, @include 남용)
- 순환 프래그먼트 DoS
- 권한 없는 뮤테이션
### 외부 도구
**Q: ApiHunter/Nuclei/HTTPX/Katana/FFUF/Kiterunner를 설치해야 하나요?**
A: 해당 특정 탭을 사용하려는 경우에만 필요합니다. 핵심 확장 프로그램은 이들 없이도 작동합니다. 설치 위치:
- ApiHunter: https://github.com/Teycir/ApiHunter (독점 도구 - 별도 설치 또는 `~/Repos/ApiHunter`에서 로컬 빌드 후 `target/release/apihunter` 빌드 필요)
- Nuclei: https://github.com/projectdiscovery/nuclei
- HTTPX: https://github.com/projectdiscovery/httpx
- Katana: https://github.com/projectdiscovery/katana
- FFUF: https://github.com/ffuf/ffuf
- Kiterunner: https://github.com/assetnote/kiterunner
**Q: 이러한 도구는 어디에 설치해야 하나요?**
A: 기본 경로:
- `~/Repos/ApiHunter/target/release/apihunter`
- `~/go/bin/nuclei`
- `~/go/bin/httpx`
- `~/go/bin/katana`
- `~/go/bin/ffuf`
- `~/.local/bin/kr`
- Windows에서는 일반적으로 `C:\\Users\\<you>\\go\\bin\\*.exe` 아래에 있습니다.
또는 각 탭에서 사용자 정의 경로를 구성하세요.
탭은 이제 Unix 스타일과 Windows `*.exe` Go-bin 위치를 모두 자동으로 감지합니다.
**Q: 사용자 정의 명령 재정의는 어떻게 작동하나요?**
A:
- 안전한 내장 기본값을 사용하려면 `Enable Custom`을 선택 해제된 상태로 두세요.
- 명령 상자에 입력한 내용을 정확히 실행하려면 `Enable Custom`을 선택하세요.
- `Preset Cmd...`를 사용하여 일반적인 명령을 빠르게 자동 입력하세요(`Enable Custom`이 선택될 때까지 여전히 옵트인 방식입니다).
- 각 탭의 플레이스홀더와 예시를 보려면 `?`를 클릭하세요.
- 사용자 정의 명령은 Windows에서 `cmd /c`, Linux/macOS에서 `bash/sh -lc`로 실행됩니다.
- 내장 HTTPX 및 Katana 기본값은 크로스 플랫폼 실행을 위해 네이티브 목록 파일 플래그(`-l` / `-list`)를 사용합니다.
### 보안 참고 사항
- 사용자 정의 명령 모드는 의도적으로 엄격하며 **옵트인** 방식입니다(`Enable Custom`을 반드시 선택해야 함).
- 렌더링된 사용자 정의 명령은 금지된 셸 조각(예: 명령 체이닝/리다이렉션/서브셸 구문)에 대해 검증됩니다.
- 사용자 정의 모드에서 실행 파일은 도구별 허용 목록으로 제한됩니다(예: `nuclei`, `httpx`, `katana`, `waybackurls`/`gau`, `apihunter`, `subfinder`).
- 플레이스홀더 컨텍스트 값은 템플릿 렌더링 전에 삭제되며, 더 안전한 경로 보간을 위해 따옴표 변형(`{targets_file_q}`, `{urls_file_q}` 등)을 사용할 수 있습니다.
- 워크플로에 이 정책을 벗어나는 복잡한 셸 로직이 필요한 경우 확장 프로그램 외부에서 해당 명령을 수동으로 실행하세요.
**Q: HTTPX에서 잘못된 옵션 오류가 표시되는 이유는 무엇인가요?**
A:
- Python `httpx` CLI 도구가 아닌 ProjectDiscovery `httpx`를 사용하고 있는지 확인하세요.
- 권장 경로: `~/go/bin/httpx`.
- 확장 프로그램은 이제 로컬 도구 서명을 검증하고 불일치 시 수정 힌트를 표시합니다.
**Q: Auth Replay용 Guest/User/Admin 헤더를 빠르게 채우려면 어떻게 해야 하나요?**
A:
- `Auth Replay`에서 Guest/User/Admin 옆의 `Extract`를 클릭하세요.
- 캡처된 헤더 후보가 포함된 검색 가능한 팝업이 열립니다.
- 엔드포인트 텍스트, 헤더 이름 또는 토큰 조각으로 필터링하세요.
- 항목을 하나 선택하고 `OK`를 클릭하면 필드가 `Name: value` 형식으로 채워집니다.
### 내보내기 및 통합
**Q: 내보낸 파일은 어디에 저장되나요?**
A: 모든 내보내기는 타임스탬프 하위 디렉터리와 함께 `~/burp_APIRecon/`에 저장됩니다. 정확한 경로는 Activity Log를 확인하세요.
**Q: AI 컨텍스트 내보내기는 어떻게 사용하나요?**
A:
1. (선택 사항) `Passive Discovery` → `Run Invariants` 실행
2. (선택 사항) `Recon` 탭에서 `Refresh Invariants` 클릭
3. `Recon` 탭에서 `Export AI Bundle` 클릭
4. APIPentesting을 사용하여 해당 내보내기에서 스캔:
- `./scripts/scan-nuclei-prioritize.sh /path/to/ai_bundle.json burp-ai-scan`
5. APIPentesting `scripts/AI_TRIAGE_PROMPT.md`를 사용하여 `Reports/.../priority.json` + `results.jsonl`을 AI UI에 제공하세요
6. `ai_sequence_evidence_ledger.json`, `ai_golden_ticket_ledger.json`, `ai_state_transition_ledger.json`을 사용하여 먼저 검증할 항목의 우선순위를 정하세요
**Q: 이전에 내보낸 데이터를 가져올 수 있나요?**
A: 네. `Import`는 다음을 허용합니다:
- `api_analysis.json`(BurpAPISecuritySuite 내보내기)
- Excalibur `.har` 내보내기(Excalibur는 독점 도구입니다: https://github.com/Teycir/Excalibur)
- Excalibur `-replay-studio.json` / `-cookies.json` / `-insights.json` 사이드카(동일한 세션 접두사에서 자동 발견)
- `excalibur_bridge_bundle.json` (`schema: excalibur-burp-bridge/v1`)
Excalibur 아티팩트가 감지되면 도구는 가져오기 후 `Refresh Invariants`를 자동 실행하여 Differential + Sequence + Golden + State + Token Lineage + Parity Drift 캐시가 즉시 준비되도록 합니다.
**Q: 캡처된 요청을 Postman이나 Insomnia로 보낼 수 있나요?**
A: 네. Recon 탭에서 다음을 사용하세요:
- `postman_collection.json`(Collection v2.1) 내보내기를 위한 `Postman`
- `insomnia_collection.json`(Insomnia 가져오기 형식) 내보내기를 위한 `Insomnia`
- 둘 다 범위 선택을 지원합니다: `All Endpoints`, `Filtered View` 또는 `Current Host`.
### 문제 해결
**Q: 확장 프로그램이 로드되었지만 탭에 표시되지 않나요?**
A: 오류가 있는지 Burp의 Extender → Extensions 탭을 확인하세요. 일반적인 문제:
- Jython이 올바르게 구성되지 않음
- Python 2.7 구문 오류(확장 프로그램은 Jython/Python 2.7 사용)
- 메모리 부족(Burp 힙 크기 증가)
**Q: "No endpoints captured" 메시지가 표시되나요?**
A: 다음을 확인하세요:
- Burp 프록시를 통해 적극적으로 탐색 중인지
- Auto-Capture가 활성화되어 있는지
- 대상이 HTTP 요청을 보내고 있는지(정적 파일만 로드하는 것이 아니라)
- 엔드포인트가 필터링되고 있는지 확인하세요(이미지/폰트는 자동 필터링됨)
**Q: Nuclei/HTTPX 스캔이 중단되거나 시간 초과되나요?**
A:
- 도구가 설치되어 있고 경로가 올바른지 확인하세요
- 대상에 대한 네트워크 연결을 확인하세요
- 대규모 스캔은 여전히 몇 분이 걸릴 수 있습니다(기본 최대 시간 초과: 15분)
- 엄격한 단일 대상 범위를 강제하려면 **Only Base+Derivatives**와 함께 **Target Bases...**를 사용하세요
- 실행 중인 외부 도구를 취소하려면 같은 탭의 **Stop** 버튼을 사용하세요
- 자세한 오류 메시지는 Activity Log를 확인하세요
**Q: 일부 엔드포인트가 "Critical" 또는 "High"로 표시되는 이유는 무엇인가요?**
A: 심각도는 다음을 기준으로 합니다:
- **Critical**: 디버그/관리자 엔드포인트, 인증되지 않은 IDOR/BOLA
- **High**: 인증된 IDOR/BOLA, 민감한 데이터 노출, 취약한 암호화
- **Medium**: 오류 응답, 반사된 파라미터
- **Info**: 표준 엔드포인트
### 고급 사용법
**Q: 경쟁 조건(race condition)은 어떻게 테스트하나요?**
A:
1. 퍼징 공격 생성(Fuzzer 탭)
2. "Turbo Intruder" 버튼 클릭
3. Burp의 Turbo Intruder에서 내보낸 `race_condition.py` 스크립트 로드
4. 50개 이상의 병렬 요청으로 구성
**Q: 공격 페이로드를 사용자 정의할 수 있나요?**
A: 네! 페이로드를 JSON으로 내보내고 수정한 다음:
- Burp Intruder에서 수동으로 사용
- 개선을 위해 AI에 제공
- 페이로드 라이브러리로 사용자 정의 스크립트 생성
**Q: 두 API 버전을 어떻게 비교하나요?**
A:
1. 버전 1에서 API 데이터 내보내기("Export All")
2. 데이터를 지우고 버전 2 캡처
3. 버전 2 내보내기
4. Diff 탭 사용 → 두 내보내기 로드 → 비교
**Q: 버그 바운티 헌팅을 위한 최상의 워크플로는 무엇인가요?**
A:
1. 인증된 트래픽 캡처(모든 사용자 역할)
2. 먼저 Critical/High 심각도 엔드포인트 검토
3. Fuzzer에서 "All" 공격 생성
4. BOLA/IDOR 엔드포인트에 집중
5. Version Scanner를 사용하여 레거시 API 찾기
6. 고가치 엔드포인트에서 Param Miner 실행
7. 자동화된 검증을 위해 Nuclei로 내보내기
### 기술적 하이라이트
- **깔끔한 Jython 아키텍처**: 테스트 가능한 핵심 로직을 갖춘 모듈식 설계
- **모듈식 추출**: 무거운 워크플로를 헬퍼 모듈로 추출(`heavy_runners.py`, `ai_prep_layer.py`, `behavior_analysis.py`)
- **스마트 탐지**: 컨텍스트 인식 취약점 식별
- **성능 최적화**: 500개 이상의 엔드포인트를 효율적으로 처리
- **크로스 플랫폼**: Windows, macOS, Linux에서 작동
- **확장 가능**: 새로운 공격 유형과 페이로드 추가 용이
- **전문적인 UI**: 색상으로 구분된 심각도, 탭 인터페이스, 실시간 통계
- **재생 범위**: 시퀀스 불변식 탐지 및 신뢰도 원장 출력을 위한 골든 재생 코퍼스 테스트 포함
## 💼 프로페셔널 서비스
맞춤형 보안 도구나 API 테스트 솔루션이 필요하신가요? 프로덕션에 바로 사용할 수 있는 애플리케이션과 보안 도구를 개발합니다.
### 주요 프로젝트
- **[ApiHunter](https://github.com/Teycir/ApiHunter)** - 지능형 엔드포인트 발견 기능을 갖춘 자동화된 API 정찰 및 보안 테스트 도구
- **[TimeSeal](https://timeseal.online)** ([GitHub](https://github.com/Teycir/Timeseal)) - 제로 트러스트 암호화를 갖춘 암호화 타임락 볼트 및 데드맨 스위치
- **[Ghost Chat](https://ghost-chat.pages.dev)** - WebRTC 기반 보안 P2P 채팅, 서버 저장 없음, 자동 파괴 타이머
- **[BurpCopyIssues](https://github.com/Teycir/BurpCopyIssues)** - 스캔 결과를 탐색, 복사, 내보내기 위한 Burp Suite 확장 프로그램
- **[BurpWpsScan](https://github.com/Teycir/BurpWpsScan)** - WPScan API 통합을 갖춘 Burp Suite용 WordPress 보안 스캐너
- **[Excalibur](https://github.com/Teycir/Excalibur)** - 실무 침투 테스트 운영을 위한 API 공격 표면 발견 및 세션 워크플로 도구(독점 도구)
- **[APIPentesting](https://github.com/Teycir/APIPentesting)** - API 버그 바운티 헌팅을 위한 Burp 우선 외부 스캐닝 및 익스플로잇 트리아지 동반 워크플로
- **맞춤형 보안 도구** - Burp 확장 프로그램, API 테스트 프레임워크, 자동화 스크립트
### 제공 서비스
- 🔒 **보안 도구 개발** - 맞춤형 Burp 확장 프로그램, 침투 테스트 도구, 자동화 프레임워크
- 🚀 **웹 애플리케이션 개발** - 최신 기술을 사용한 풀스택 개발
- 🔧 **API 보안 컨설팅** - 아키텍처 검토, 취약점 평가, 수정 지침
- 🤖 **AI 통합** - LLM 기반 보안 도구, 자동화된 페이로드 생성, 지능형 퍼징
**문의하기**: [teycirbensoltane.tn](https://teycirbensoltane.tn) | 프리랜스 프로젝트 및 컨설팅 가능
## 기여
### 작성자
[Teycir Ben Soltane](https://teycirbensoltane.tn)이(가) 개발
### 라이선스
MIT 라이선스 - 승인된 보안 테스트 및 연구 목적으로 무료 사용 가능.
## 변경 로그
전체 릴리스 내역은 [CHANGELOG.md](https://github.com/teycir/burpapisecuritysuite/blob/HEAD/CHANGELOG.md)를 참조하세요.
| 기능 | BurpAPISecuritySuite | Burp Scanner Pro | OWASP ZAP | Postman |
|---|
| 가격 | 무료 | $449/년 | 무료 | 무료/유료 |
| API 특화 초점 | ✅ 예 | ⚠️ 부분적 | ⚠️ 부분적 | ✅ 예 |
| 자동 캡처 및 정규화 | ✅ 예 | ❌ 아니요 | ⚠️ 기본 | ❌ 아니요 |
| BOLA/IDOR 탐지 | ✅ 자동화 | ⚠️ 수동 | ⚠️ 수동 | ❌ 아니요 |
| 공격 유형 | 15가지 | 100개 이상(일반) | 50개 이상(일반) | 제한적 |
| API 페이로드 | 108개 이상 API 중심 | 일반 웹 | 일반 웹 | 기본 |
| JWT 분석 | ✅ 자동 | ⚠️ 확장 필요 | ⚠️ 확장 필요 | ⚠️ 수동 |
| GraphQL 테스트 | ✅ 내장 | ❌ 아니요 | ⚠️ 제한적 | ⚠️ 수동 |
| 경쟁 조건 테스트 | ✅ Turbo Intruder | ✅ Turbo Intruder | ❌ 아니요 | ❌ 아니요 |
| AI 통합 | ✅ AI 번들 내보내기 + LLM 페이로드 | ❌ 아니요 | ❌ 아니요 | ❌ 아니요 |
| 버전 스캐너 | ✅ 내장 | ❌ 아니요 | ❌ 아니요 | ❌ 아니요 |
| 파라미터 마이닝 | ✅ 내장 | ⚠️ 확장 필요 | ❌ 아니요 | ❌ 아니요 |
| Wayback 발견 | ✅ 내장 | ❌ 아니요 | ❌ 아니요 | ❌ 아니요 |
| 외부 도구 통합 | ✅ ApiHunter, Nuclei, SQLMap, Dalfox, HTTPX, Katana, FFUF, Subfinder, DNSX | ❌ 아니요 | ⚠️ 제한적 | ⚠️ 제한적 |
| WAF 우회 기술 | ✅ 20개 이상 | ⚠️ 일부 | ⚠️ 일부 | ❌ 아니요 |
| 내보내기 형식 | JSON, Intruder, Turbo, Nuclei, cURL | XML, HTML | XML, HTML, JSON | JSON, cURL |
| Burp Community 지원 | ✅ 예 | ❌ Pro 전용 | N/A | N/A |
| 학습 곡선 | 낮음 | 중간 | 중간 | 낮음 |
| 최적 대상 | API 펜테스팅, 버그 바운티 | 전체 웹 앱 테스트 | DAST 자동화 | API 개발 |
Show Endpoint Detail, Send Selected To Repeater, Copy Selected Rows 및 대량 선택.abuse_chain_*, proof_mode_packet_sets, spec_guardrails_*, role_delta_* JSON 아티팩트도 작성Auth + Unauthauth-associatedunauth-associatedauth_detectedUnauth Only, Auth Only, Auth + Unauth(기본값). 이중 패스 모드에서 중복 제거된 기본 URL은 auth-associated 및 unauth-associated 대상 목록으로 분할되며 각 패스는 자체 목록에서 실행됩니다. 인증 연관은 요청 인증 헤더와 비헤더 인증 신호(요청 메타데이터의 auth_detected, 토큰/쿠키/세션 마커)를 모두 사용합니다.Critical / High / Medium 임계값Custom Targets... 팝업에서 ApiHunter 입력을 강제하는 체크박스scheme://host[:port]/)를 포함한 멀티라인 편집기(최대 20개 항목, 줄당 하나). 중복 제거 및 잘못된 줄 거부 포함Use Custom Targets가 활성화되면 팝업 내용이 비어 있거나, 한도를 초과하거나, 잘못된 URL 줄이 있으면 실행이 빠르게 실패함scheme://host[:port]/)을 생성Quick: --no-discovery, --max-endpoints 40, --concurrency 4, --timeout-secs 12, --retries 1, --delay-ms 0이며 무거운 스캐너(mass-assignment, oauth-oidc, rate-limit, cve-templates, websocket) 비활성화Balanced: --no-discovery, --max-endpoints 80, --concurrency 5, --timeout-secs 15, --retries 1, --delay-ms 50Deep: --active-checks --response-diff-deep --no-discovery, --max-endpoints 0, --concurrency 6, --timeout-secs 20, --retries 2, --delay-ms 100, --waf-evasion, --per-host-clients, --adaptive-concurrency{apihunter_path}, {targets_file}, {results_file})로 전체 명령 오버라이드 선택Auth + Unauth 이중 패스가 차단됩니다. Auth Only 또는 Unauth Only를 사용하거나 사용자 지정 모드를 비활성화하여 자동 이중 패스 실행을 사용하세요.Critical / High / Medium)에 적용되며 스캐너 출력 통계는 완전하게 유지됨BalancedDeepAuth + Unauth 이중 패스가 차단됩니다. Auth Only 또는 Unauth Only를 사용하거나 사용자 지정 모드를 비활성화하여 자동 이중 패스 실행을 사용하세요.nuclei/httpx/katana/ffuf/kiterunner/waybackurls/gau/sqlmap/dalfox/subfinder/dnsx 긴급 종료taskkill, Linux/macOS에서는 pkill(killall 폴백 포함) 사용Filter Noise 컨트롤이 기본 대상 세트를 압축함Deserialization