
Burp Suite 보안 도구용 REST/JSON API.
⚠️ 경고: 이 프로젝트는 더 이상 활발히 유지관리되지 않습니다.
저장소는 참고용으로 계속 제공되지만, 향후 업데이트, 버그 수정 또는 지원은 제공되지 않습니다.
Burp Suite 보안 도구용 REST/JSON API입니다.
2016년 첫 커밋 이후로 burp-rest-api는 BurpSuite 기반 웹 스캐닝 자동화의 기본 도구였습니다. 많은 보안 전문가와 조직이 Burp Spider 및 Scanner의 작업을 오케스트레이션하기 위해 이 확장 프로그램을 사용해 왔습니다.
burp-rest-api-2.3.2.jar)을 다운로드합니다.burpsuite_pro.jar를 사용하면 안 됩니다.Linux, Mac:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar:burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
Windows:
java --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -cp "burpsuite_pro.jar;burp-rest-api-2.3.2.jar" org.springframework.boot.loader.launch.JarLauncher
중요!!!
burp-rest-api는 레거시 Burp Suite Professional v1.7과 최신 Burp Suite Professional v2025.x를 모두 지원합니다. 이 프로젝트는 Burp Extender API에 의존하므로, 일부 기능의 동작은 Burp 버전에 따라 약간 다를 수 있습니다. 예를 들어, v2025.x의 Burp Suite Scanner 구성은 더 이상 사용자 지정할 수 없습니다.
기본적으로 Burp는 헤드리스 모드로 실행되며, Proxy는 8080/tcp 포트(localhost 전용)에서, REST 엔드포인트는 8090/tcp 포트(localhost 전용)에서 실행됩니다.
명령줄에서 __UI 모드로 Burp를 실행__하려면 다음 인수를 추가합니다:
--headless.mode=false
API에 접근할 수 있는 __서버 포트를 변경__하려면 다음 인수를 추가합니다:
--server.port=8081
또는
--port=8081
네트워크 주소 바인딩에 사용되는 __서버 주소를 변경__할 수도 있습니다:
--server.address=192.168.1.2
또는
--address=192.168.1.2
다음 명령줄 인수는 확장 프로그램이 실행 모드와 포트 번호를 구성하는 데에만 사용됩니다.
--burp.jar=<filename.jar> : Burp jar를 동적으로 로드하여 REST API를 통해 노출합니다. 이 플래그는 Java <= 1.8에서만 작동합니다! 최신 Java 버전에서는 burp-rest-api.{sh,bat} 스크립트를 사용하세요.
--burp.ext=<filename.{jar,rb,py} : 애플리케이션 시작 중에 지정된 Burp 확장 프로그램을 로드합니다. 이 플래그는 반복할 수 있습니다.
--server.port=<port_number> : REST API 엔드포인트가 지정된 포트 번호에서 제공됩니다. --port=<port_number>
는 단축 인수로 작동합니다.
--server.address=<network address> : REST API 엔드포인트가 바인딩되어야 하는 네트워크 주소입니다. --address=<address_ip>
는 단축 인수로 작동합니다.
--apikey=<customApiKey> : /burp/* 경로의 API를 보호하기 위해 API 키 인증을 활성화합니다. 인수로 전달된 customApiKey는 모든 HTTP 요청에 추가 헤더 "API-KEY: <customApiKey>" 로 포함되어야 합니다.
--headless.mode=<true/false> : false로 설정하면 Burp Suite가 UI 모드로 실행됩니다. 그렇지 않으면 Burp Suite가 헤드리스
모드로 실행됩니다. 기본값: 시스템 속성 (java.awt.headless)
실행 가능한 burp-rest-api JAR에 전달된 명령줄 인수는 Burp Suite JAR로 전달됩니다. 따라서 다음 Burp Suite JAR 명령줄 인수를 Burp Suite JAR에 직접 전달할 때와 동일한 기능을 위해 burp-rest-api JAR에 전달할 수 있습니다.
--project-file=<filename> : 도구의 상태를 유지하는 데 사용되는 지정된 Data Project File을 엽니다. 해당 파일이
이미 존재하지 않으면 새 프로젝트로 생성됩니다.
--config-file=<filename> : 선택한 Project Configuration File에 포함된 옵션을 사용하여 프로젝트를 엽니다. 여러 프로젝트 구성을 로드하려면 이 인수를 서로 다른 값으로 여러 번 전달할 수 있습니다.
--user-config-file=<filename> : 선택한 User Configuration File에 포함된 옵션을 사용하여 프로젝트를 엽니다. 여러 사용자 구성을 로드하려면 이 인수를 서로 다른 값으로 여러 번 전달할 수 있습니다.
Projects에 대한 자세한 내용은 Burp Suite 문서를 참조하세요. 여기 및 여기. 스캐너 설정에 대해서는 "Burp Suite 지원 및 제한 사항" 섹션을 참조하십시오.
burp-rest-api JAR이 --project-file, --config-file 또는 --user-config-file 인수 없이 실행되면, Burp Suite는
임시 프로젝트 파일과 일부 기본 구성으로 실행됩니다. 임시 프로젝트 파일은 Burp Suite 실행 시 생성되며, 실행 종료 시 삭제됩니다.
Burp Suite 실행에 사용되는 기본 구성에 대해서는 JAR 내부의 static 폴더에 있는 burp-default-project-options.json 및 burp-default-user-options.json 파일을 참조하십시오.
API 문서를 정의하기 위해 Swagger가 사용됩니다. JAR이 실행되면 다음 리소스에 접근하여 API 문서와 Swagger UI를 확인할 수 있습니다. 포트 8090이 기본 서버 포트입니다.
Swagger UI: http://localhost:8090/swagger-ui/index.html#
이 프로젝트에는 다른 프로젝트에서 사용할 수 있도록 Java로 작성된 클라이언트(BurpClient.java)도 포함되어 있습니다. _BurpClient.java_의 사용법은 통합 테스트 파일 _BurpClientIT.java_를 참조하십시오.
이 프로젝트는 원래 Resty-Burp에서 영감을 받았으며, Doyensec LLC와 파트너십을 맺고 개발되었습니다.
burp-rest-api 프로젝트 팀은 커뮤니티의 기여를 환영합니다. 코드 기여를 원하고 당사 기여자 라이선스 계약(CLA)에 서명하지 않은 경우, Pull Request를 열면 봇이 이슈를 업데이트합니다. CLA 프로세스에 대한 질문이 있으면 CLA FAQ를 참조하십시오. 더 자세한 정보는 CONTRIBUTING.md 및 FAQ.md를 참조하십시오.
다음 섹션에는 확장 프로그램 개발을 시작하는 데 유용한 정보가 포함되어 있습니다.
lib 폴더를 만들고 Burp Suite JAR 파일을 그 안에 넣은 다음, 통합 테스트를 실행하려면 이름을 "burpsuite_pro.jar"로 변경합니다. # jar 빌드
./gradlew clean build
최신(JRE > 9) 버전의 JVM에서 확장 프로그램을 실행하려면, burpsuite_pro.jar와 burp-rest-api.jar를 스크립트와 같은 디렉터리에 복사한 후 burp-rest-api-devel.{sh,bat} 실행 스크립트를 사용하세요.
# Unix(Linux, macOS)에서
./burp-rest-api-devel.sh
# Windows에서
./burp-rest-api-devel.bat
Copyright (c) 2016 VMware, Inc. All Rights Reserved. Copyright (c) 2025 Doyensec LLC. All Rights Reserved.
수정 여부와 관계없이 소스 및 바이너리 형태로의 재배포 및 사용은 다음 조건을 충족하는 경우 허용됩니다. 소스 코드의 재배포는 위의 저작권 고지, 이 조건 목록 및 다음 면책 조항을 유지해야 합니다. 바이너리 형태로의 재배포는 배포와 함께 제공되는 문서 및/또는 기타 자료에 위의 저작권 고지, 이 조건 목록 및 다음 면책 조항을 포함해야 합니다.
본 소프트웨어는 저작권 보유자 및 기여자에 의해 "있는 그대로" 제공되며, 상품성 및 특정 목적 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 명시적 또는 묵시적 보증이 일절 부인됩니다. 어떠한 경우에도 저작권 보유자나 기여자는 본 소프트웨어의 사용으로 인해 발생하는 직접적, 간접적, 부수적, 특별, 징벌적 또는 결과적 손해(대체 상품 또는 서비스의 조달, 사용 권한, 데이터 또는 이익의 손실, 또는 사업 중단을 포함하되 이에 국한되지 않음)에 대해 계약, 엄격한 책임 또는 불법 행위(과실 또는 기타 포함)에 의한 책임을 지지 않습니다. 그러한 손해의 가능성이 사전에 통보된 경우에도 마찬가지입니다.