[\[EN-ReadMe\]](https://github.com/Sugobet/API_Sword/blob/main/%5BEN%5D-README.md) <------ 이것을 읽어주세요
微信公众号:APT250
오픈소스 우선, 소통과 학습의 원칙에 따라, API검은 2주 후(9월 7일 이후) 오픈소스 공개 및 동시에 Burp 공식 플러그인 스토어 BApp Store에 등록될 예정이며, 앞으로 업데이트 및 사용이 편리하도록 준비 중입니다. 현재 공식 심사를 받고 있으며 곧 BApp Store에 출시될 것으로 기대합니다.
[burp 신 고전 플러그인] API검 - 완전 자동 심층 수집 다양한 응답 내 API 인터페이스
jar 파일은 릴리즈에 있으며, 이후 burp 공식 플러그인 스토어에 등록되면 스토어에서 다운로드할 수 있습니다.
서문
이 플러그인은 최근 제 작업 내용과 이전에 제가 4만 달러 현상금의 마이크로소프트 계정 취약점 API 경험을 일부 결합한 것입니다.
API검 개발자는 API검을 사용하여 여러 프로젝트에서 성과와 범용 0day를 다수 획득했으며, 이 도구를 가진 후로는 더 이상 수동으로 어떤 js에서든 고통스럽게 인터페이스, 경로 및 매개변수를 찾지 않습니다.

많은 JS Finder, URLFinder 등 인기 있는 관련 js, api 탐색 도구와 유사하게, 이들은 매우 훌륭한 도구이며, API검은 burp의 특징을 통해 능력과 장점을 얻었습니다.
플러그인 메인 페이지 스크린샷:
API검의 주요 기능
API검은 완전 자동 루프 방지 기능을 갖추고, 다양한 응답에서 지정 범위 내의 api와 js 파일을 추출한 후 재귀적으로 심층 api를 추출하며, api, js 등 가치 있는 파일에 대해 능동적으로 요청을 수행합니다.
api 결과는 있는 그대로 보여지며, 오른쪽 창은 api의 출처인 js를 표시하여 즉시 js에서 api 매개변수 정보를 얻을 수 있고, burp에서 Ctrl + R로 바로 테스트할 수 있습니다.
생각만큼 복잡하지 않으며, API검이 하는 일은 우리를 위해 많은 반복적이고 시간이 많이 걸리며 지루한 js, api, api 매개변수 탐색 작업을 크게 줄여줍니다.
- API검은 burp를 거치는 범위 내 트래픽을 캡처하고, http 응답에서 대다수 링크를 추출합니다.
- API검은 1단계에서 추출한 임의의 링크, 경로를 정제하며, API검 판단 후 API, JS 등에 대해 능동적으로 GET, POST 요청을 수행합니다.
- API검은 2단계 능동 요청의 응답을 추가 처리하여 응답에서 계속 정보를 추출하고 2단계 동작을 반복합니다. API검은 루프 방지 기능이 있어 무한 요청 문제 걱정이 없습니다.
- API검은 조건에 맞는 모든 API 요청, 응답 및 해당 API 인터페이스 출처인 js 파일 응답을 API검의 burp GUI로 모두 전송합니다.
- API검은 모든 관련 요청을 자동으로 burp의 target sitemap에 추가하며, target sitemap의 분석 등 기능에서 API검이 가져다주는 성과를 마음껏 누릴 수 있습니다.
opsec 등 운영 보안 위험을 고려하여, 현재 API검은 매개변수를 능동적으로 fuzz하지 않으며, 이후 필요 시 옵션 기능으로 추가할 예정입니다.
어떻게 사용하나요?
주의: 플러그인은 2024.7 버전 이상의 burpsuite에서 실행되어야 합니다; (2024.7 미만 버전의 경우 플러그인 설정 페이지에서 "원본 헤더 사용 여부" 기능을 수동으로 비활성화해야 합니다)
API 검의 사용법은 매우 간단합니다,
- 플러그인을 burp 2024 이후 버전에 설치하고, 플러그인에 오류가 없는지 확인합니다
- 플러그인의 Scope를 설정합니다
- 브라우저를 열어 브라우저 트래픽이 burp를 통해 흐르는지 확인합니다
- 대상 웹사이트에 접속하여 사이트 내에서 보이는 모든 항목을 클릭하고 테스트합니다
- 일정 시간이 지난 후 API 검의 SiteMap에서 결과를 확인합니다
API 검 설정
Scope 탭에서 범위를 설정할 수 있습니다. 범위는 url, 도메인, ip가 될 수 있습니다
이 범위는 매우 중요하므로 신중하게 설정하는 것이 좋습니다. 그렇지 않으면 외부 영역까지 스캔할 수 있습니다.
범위를 설정한 후 Setting 탭을 봅니다
- API 요청에 대해 적극 허용
- 원본 headers 사용 여부
- 모든 요청 즉시 중지
- 현재 SiteMap 모든 데이터 삭제

- 활성 HTTP 요청 속도 설정
- 활성 요청 시 추가로 사용자 정의 경로 요청 추가 여부
- 200이 아닌 사용자 정의 응답 코드 필터링
- API 검이 응답에서 baseURL을 적극적으로 찾아 baseURL 경로 연결 수행 허용
- 사용자 정의 헤더 필드 추가: (기존 헤더 필드를 자동 덮어씀)
- 위험한 인터페이스 접근 우회 활성화 (인터페이스에 문자열 포함 시 건너뜀)
- 범위 및 모든 설정 저장
- API 인터페이스 뒤, 매개변수 앞에 사용자 정의 경로 추가 여부
- 스레드 수 제어
감사의 말씀
Microsoft에 감사드립니다
나의 녹명 멘토에 감사드립니다
mil1ln에 감사드립니다
탐희에 감사드립니다
테스트 단계에서 API 검에 소중한 의견과 피드백을 제공해주신 모든 분들께 감사드립니다
위 모든 분들께서 API 검에 제공해주신 모든 지원에 감사드립니다!
TODO
- 매화K 폴로 셔츠 한 벌 수집 ⬛️
- 선택 가능한 base url 경로 퍼즈 추가 ✅
- 사용자 정의 응답 코드 필터링 추가 ✅
- API 검主动 요청 시 사용자 정의 base 경로 옵션 추가 ✅
- 매칭 전략 최적화, API 검 성능 80% 향상 ✅
- API 검主动 요청 최적화, 위험한 API 접근 방지 ✅
- burp 기본 헤더에 CT 필드 미포함 문제 해결 ✅
- 응답 테이블의 태그 너비 최적화 ✅
- 사이트맵 UI 깜빡임 문제 수정 ✅
- 사용자 정의 요청 헤더 선택 기능 추가 ✅
- 응답 목록의 태그 자동 정렬 추가 ✅
- 매칭 전략 최적화 ✅
- 코드 블록 최적화 ⬛️
- burp 종료 처리 등록 ✅
- 전체 코드에 한영 이중 언어 주석 추가 ⬛️
- GUI에 한영 이중 언어 전환 기능 추가 ✅
- UI로 인한 burp 지연 및 렌더링 문제 최적화 ✅
- 범위 및 설정 저장 기능 추가 ✅
- 멀티스레드 기능 추가 ✅
- 인터페이스 뒤, 매개변수 앞의 사용자 정의 경로 기능 추가 ✅
- 멀티스레드로 인한 무한 루프 방지 로직 오류 긴급 수정 ✅
- 자동 정렬 표시 오류 문제 수정 ✅
- API 목록 UI 최적화, 데이터 삽입 시 방향키 입력 중단 방지 ✅
- 멀티스레드로 인한 무한 루프 방지 로직 오류 완전 수정 ✅
- 필터 추가 ✅
- 노드 확장 및 전체 노드 접기 기능 추가 ✅
- 사이트맵 초기화 기능 최적화 ✅
- CDN|크로스 사이트 JS 연결 로직 최적화, referer를 baseUrl로 사용 ✅
- 수동 스캔 기능 추가, 수동 스캔 시 호스트가 범위 목록에 자동 추가: burp에서 요청 본문 우클릭 -> 확장 -> API Sword -> API Scan ✅