개발 지원
이 프로젝트가 업무에 도움이 된다면 지속적인 유지보수와 새로운 기능 개발을 지원해 주세요.
ETH 기부 지갑
0x11282eE5726B3370c8B480e321b3B2aA13686582
QR 코드를 스캔하거나 위의 지갑 주소를 복사하세요.
BurpWpsScan

웹 애플리케이션 테스트 중 WordPress 사이트를 탐지하고(패시브 탐지 + 능동 검증), WPScan API를 통한 WordPress 코어·플러그인·테마 취약점 스캔을 포함한 포괄적인 보안 평가를 수행하고, XML-RPC/REST API 노출을 테스트하고, 사용자를 열거하고, 플러그인 버전을 확인하며, AI 분석에 바로 사용할 수 있는 침투 테스트 보고서를 생성하는 Burp Suite 확장 프로그램입니다.
Burp Suite Community 및 Professional 에디션 모두와 호환됩니다.
스크린샷
메인 인터페이스
상태 표시기와 스캔 컨트롤이 포함된 탐지된 WordPress 사이트를 보여주는 WpsScan 메인 인터페이스
내보낸 보고서
각 스캔 사이트에 대한 JSON, Markdown 및 AI 분석용 보고서로 구성된 체계적인 내보내기 구조
원시 WPScan JSON
전체 취약점 데이터와 스캔 메타데이터를 포함한 상세 JSON 출력
기능
탐지 및 발견
- 실시간 WordPress 탐지: 실시간 HTTP 트래픽에서 WordPress 사이트를 패시브 방식으로 식별합니다
- HTTP 기록 스캔: Burp의 HTTP 기록을 스캔하여 과거 트래픽에서 WordPress 사이트를 찾습니다 ([HTTP HISTORY] 라벨로 표시)
- 대량 URL 가져오기: 여러 URL을 능동적으로 검증하고 가져와 일괄 WordPress 탐지를 수행합니다
- 플러그인/테마 발견: HTTP 응답과 기록에서 플러그인과 테마를 추출합니다
- 버전 탐지: 여러 소스(메타 태그, 피드, API)에서 WordPress 코어 버전을 식별합니다
취약점 스캔
- WPScan API 통합: WPScan 취약점 데이터베이스를 조회하여 다음을 확인합니다:
- WordPress 코어 취약점
- 플러그인 취약점 (80개 이상의 고위험 플러그인 + 최대 3개 추가)
- 테마 취약점
- 실시간 취약점 세부 정보: 각 구성 요소가 스캔되는 즉시 취약점 제목과 유형을 표시합니다
- 스마트 플러그인 스캔: 80개 이상의 고위험 플러그인 전체와 최대 3개의 추가 플러그인을 스캔합니다 (API 크레딧 60-80% 절약)
- 24시간 API 캐시: 24시간 내에 동일한 플러그인/테마를 두 번 스캔하지 않습니다 (Burp 재시작 후에도 유지)
보안 평가
- XML-RPC 보안 테스트:
- XML-RPC 엔드포인트 활성화 여부 감지
- pingback.ping 메서드 테스트 (DDoS 증폭 위험)
- system.multicall 메서드 테스트 (무차별 대입 공격 증폭 위험)
- REST API 발견:
- 접근 가능한 WordPress REST API 엔드포인트 열거 (/wp-json/wp/v2/)
- users, posts, pages, media 엔드포인트 테스트
- 사용자 열거 취약점을 플래그로 표시
- 사용자 열거:
- REST API(/wp-json/wp/v2/users)를 통한 사용자 열거 시도
- 작성자 리다이렉트 방식(?author=N)으로 대체
- 정찰을 위해 사용자 이름과 ID 추출
- 플러그인 업데이트 모니터링: WordPress.org에서 플러그인의 최신 버전을 확인합니다 (API 크레딧 사용 안 함)
- 보안 강화 탐지: 보안 플러그인 및 보안 강화 조치를 식별합니다
워크플로 및 관리
- 이중 탐지 모드: 실시간 스캔 + HTTP 기록 스캔이 독립적으로 작동합니다
- API 크레딧 카운터: 일일 API 사용량 실시간 추적 (자정에 초기화)
- 상태 추적: 사이트를 Scanned(스캔됨), Vulnerable(취약), False Positive(오탐)으로 태그 지정, 영구 저장
- 보고서 내보내기: 구조화된 JSON, 서식 지정된 Markdown, AI 분석용 프롬프트 생성
- URL 정규화: 서브도메인을 루트 도메인으로 자동 정규화 (cd.krytter.com → krytter.com)
- 프로토콜 지원: 동일 사이트의 HTTP 및 HTTPS 버전을 모두 처리
- 시각적 표시: [HTTP HISTORY] 및 [IMPORTED] 라벨이 포함된 색상 코드 상태
설치
사전 요구 사항
단계
-
저장소 클론 또는 다운로드:
git clone https://github.com/Teycir/BurpWpsScan.git
cd BurpWpsScan
-
Burp Suite에서 확장 프로그램 로드:
Extensions → Installed로 이동
Add 클릭
- 확장 프로그램 유형:
Python
- 파일 선택:
WpsScan.py
Next 클릭
-
API 키 구성:
- Burp Suite에서 "WpsScan" 탭으로 이동
- 상단의 텍스트 필드에 WPScan API 키 입력
- "Save Key" 버튼 클릭
- 키는
C:\burpwpscan_exports\wpsscan_config.txt (Windows는 C-Z 드라이브 시도) 또는 /tmp/burpwpscan_exports/wpsscan_config.txt (Linux/Mac)에 저장됩니다
-
설치 확인:
- Burp Suite에 "WpsScan" 탭이 있는지 확인
Extensions → Output에서 성공 메시지 확인
사용법
실시간 탐지
- "Live Scan: ON" 버튼이 활성화(녹색)되어 있는지 확인합니다
- Burp(Proxy, Repeater, Scanner 등)를 통해 대상 웹사이트를 탐색합니다
- 확장 프로그램이 HTTP 트래픽을 자동으로 모니터링하고 WordPress 사이트를 실시간으로 탐지합니다
- 탐지된 사이트가 WpsScan 탭 목록에 표시됩니다
HTTP 기록 스캔
- "Scan HTTP History" 버튼 클릭
- 확장 프로그램이 Burp 기록의 모든 과거 HTTP 트래픽을 스캔합니다
- 발견된 WordPress 사이트는 파란색 [HTTP HISTORY] 라벨과 함께 추가됩니다
- 실시간 스캔에서 이미 발견된 사이트도 추가할 수 있습니다
- 이전 세션의 WordPress 사이트를 찾는 데 유용합니다
HTTP 기록 스캔이 강력한 이유:
- 더 많은 플러그인 발견: 홈페이지는 보통 2-3개의 플러그인만 로드하지만, 여러 페이지(쇼핑, 블로그, 연락처)를 탐색하면 다른 플러그인이 로드됩니다
- 예시: 홈페이지에는
contact-form-7이 표시될 수 있지만, 쇼핑 페이지는 woocommerce, 결제 페이지는 stripe, 블로그는 yoast-seo를 로드합니다
- 더 나은 커버리지: 5-10페이지를 탐색한 후 HTTP 기록을 스캔하면 홈페이지만으로 발견하는 2-3개와 달리 10-20개 이상의 플러그인을 발견할 수 있습니다
- API 크레딧 절약: 더 많은 플러그인 발견 = 재스캔 없이 더 정확한 취약점 평가
- 모범 사례: Burp Proxy를 통해 대상 사이트를 철저히 탐색한 후, WPScan을 실행하기 전에 "Scan HTTP History"를 클릭하세요
대량 URL 가져오기
- "Import URLs" 버튼 클릭
- 텍스트 영역에 URL을 붙여넣습니다 (줄마다 하나씩)
- "Import"를 클릭하여 스캔 목록에 추가합니다
- 확장 프로그램이 가져오기 전에 각 URL이 유효한 WordPress 사이트인지 자동으로 검증합니다
- 확인된 WordPress 사이트만 스캐너에 추가됩니다
- HTTP 및 HTTPS URL 모두 지원합니다
- 정찰 도구(subfinder, amass 등)의 대상 URL을 가져오는 데 적합합니다
참고: 확장 프로그램은 URL을 추가하기 전에 WordPress 시그니처(wp-content, wp-includes 등)를 확인하기 위해 HTTP 요청을 전송합니다. WordPress가 아닌 사이트는 자동으로 필터링됩니다.
수동 스캔
옵션 1 - 더블클릭:
- 목록에서 탐지된 WordPress 사이트를 더블클릭합니다
- 대화상자에서 스캔을 확인합니다
- 스캔이 완료될 때까지 기다립니다
옵션 2 - 버튼 인터페이스:
- "Scan All"을 클릭하여 탐지된 모든 사이트를 스캔합니다
스캔 출력
확장 프로그램은 스캔 중 상세한 실시간 피드백을 제공합니다:
보안 테스트:
[+] XML-RPC enabled
[!] Pingback available (DDoS risk)
[!] Multicall available (brute force amplification)
[+] REST endpoint accessible: Users
[+] REST endpoint accessible: Posts
코어 취약점:
[+] Core: 2 vulnerabilities
- WP < 6.8.3 - Author+ DOM Stored XSS (SENSITIVE DATA DISCLOSURE)
- WP < 6.8.3 - Contributor+ Sensitive Data Disclosure (SENSITIVE DATA DISCLOSURE)
플러그인 취약점:
[+] Plugin 'searchwp': 1 vulnerabilities
- SearchWP < 4.2.6 - Subscriber+ Settings Update (NO AUTHORISATION)
[+] Plugin 'wp-parsely': 0 vulnerabilities (clean)
[*] Plugin 'contact-form-7': latest version 5.8.4
테마 취약점:
[+] Theme 'rollingstonesofficial': 0 vulnerabilities (clean)
시각적 표시
- [HTTP HISTORY]: 파란색 라벨은 HTTP 기록 스캔을 통해 발견된 사이트를 나타냅니다
- [IMPORTED]: 보라색 라벨은 대량 URL 가져오기를 통해 가져온 사이트를 나타냅니다
- 색상 코드 행:
- 노란색: 스캔 중
- 녹색: 스캔 완료
- 빨간색: 스캔 오류
- 흰색/회색 교차: 기본값
사이트 태그 지정
- 목록에서 사이트를 선택합니다
- 하단의 체크박스를 사용합니다:
- Scanned(스캔됨): 수동 검토 완료로 표시
- Vulnerable(취약): 확인된 취약점 발견
- False Positive(오탐): 실제 WordPress가 아니거나 관련 없음
- 태그는 Burp 재시작 후에도 유지됩니다
보고서 내보내기
- "Export Reports" 버튼 클릭
- 보고서는 다음 위치에 저장됩니다:
- Windows:
C:\burpwpscan_exports\scan_YYYYMMDD_HHMMSS\ (C-Z 드라이브 시도)
- Linux/Mac:
/tmp/burpwpsscan_exports/scan_YYYYMMDD_HHMMSS/
- 각 사이트마다 다음 파일이 생성됩니다:
raw_wpscan.json - 원시 API 응답
report.md - 서식 지정된 Markdown 보고서
ai_prompt.txt - AI 분석에 바로 사용 가능
검색 및 필터
- 검색 상자: URL로 사이트 필터링
- 정렬 드롭다운: 기본(Default), 호스트(Host), 상태(Status), 탐지 시간(Detection Time)별 정렬
API 크레딧 추적
- 스캔된 웹사이트 카운터: "Websites Scanned: X" 표시 - 스캔된 사이트 수 추적
- API 크레딧 카운터: "API Credits: X" 표시 - 실제 API 호출 횟수 추적
- 색상 표시 (API 크레딧 기준):
- 녹색: 0-19회 호출 (안전)
- 주황색: 20-24회 호출 (경고)
- 빨간색: 25회 이상 호출 (한도 도달)
- 자동 초기화: 카운터는 자정(00:00)에 초기화됩니다
- 영구 유지: Burp 재시작 후에도 유지됩니다
- 수동 초기화: "Reset" 버튼을 사용하여 두 카운터를 모두 초기화합니다
보고서 형식
Markdown 보고서 (report.md)
사람이 읽을 수 있는 취약점 보고서:
- 경영진 요약
- 보안 발견 사항 (XML-RPC, REST API 노출)
- 상세 취약점 설명
- CVE 참조
- 수정 권장 사항
- 기술 세부 정보
AI 프롬프트 (ai_prompt.txt)
AI 분석을 위한 구조화된 프롬프트:
- 스캔 결과 요약
- 취약점 세부 정보
- 악용 가이드 요청
- 수정 단계
- 비즈니스 영향 평가
JSON 내보내기 (raw_wpscan.json)
기계 판독 가능 형식:
- 스캔 메타데이터
- WordPress 버전 정보
- 전체 취약점 데이터
- 플러그인/테마 정보
- XML-RPC 보안 상태
- REST API 엔드포인트 발견
- 플러그인 업데이트 정보
- 통계
API 키 및 크레딧 최적화
WPScan API
- 무료 티어: 하루 25회 요청
- 가입: https://wpscan.com/api
- 가격: 대부분의 펜테스트에 무료 티어로 충분합니다
- 구성: 확장 프로그램 UI에 API 키를 입력하고 "Save Key"를 클릭합니다
스마트 API 크레딧 사용
확장 프로그램은 API 소비를 최소화하기 위해 지능적인 전략을 사용합니다:
1. 스마트 플러그인 우선순위 지정 (80개 이상의 고위험 플러그인)
- 고위험 플러그인을 먼저 스캔합니다 (WooCommerce, Contact Form 7, Elementor 등)
- 실제 WordPress 익스플로잇의 95%를 커버합니다
- 카테고리: 폼(Forms), 전자상거래(E-commerce), 페이지 빌더(Page Builders), SEO, 보안(Security), 백업(Backup), 캐시(Cache), LMS, 슬라이더(Sliders), 소셜(Social), 파일 관리(File Management), 번역(Translation)
2. 포괄적인 고위험 스캔
- 발견된 모든 고위험 플러그인을 스캔합니다 (WooCommerce, Elementor, Contact Form 7 등)
- 최대 3개의 추가 비고위험 플러그인을 스캔합니다
- 원리: 알려진 위험한 플러그인의 심각한 취약점을 절대 놓치지 않음
3. 24시간 API 응답 캐시
- 플러그인/테마 결과를 24시간 동안 캐시합니다
- Burp 재시작 후에도 유지됩니다 (
wpsscan_api_cache.json)
- 예시: "contact-form-7"이 포함된 10개 사이트 스캔 = API 호출 1회 (9개는 캐시됨)
- 로그에서
[CACHE] 접두사로 캐시 표시가 나타납니다
4. 이미 스캔된 사이트 건너뛰기
- "Scan All"은 결과가 이미 있는 사이트를 자동으로 건너뜁니다
- 실수로 인한 재스캔과 크레딧 낭비를 방지합니다
API 크레딧 절약
최적화 전:
- 사이트당: 1(코어) + 10(플러그인) + 5(테마) = 16회 API 호출
- 10개 사이트 = 160회 API 호출
최적화 후 (일반적인 경우):
- 사이트당: 1(코어) + 5(고위험 플러그인) + 1(테마) = 7회 API 호출
- 10개 사이트 = 70회 API 호출
- 절약: 56% 감소
최적화 후 (캐시 포함):
- 첫 번째 사이트: 7회 API 호출
- 동일한 고위험 플러그인을 가진 다음 9개 사이트: 각 1회 API 호출 (캐시됨)
- 총: 16회 API 호출
- 절약: 90% 감소
구성
API 키 관리
- API 키는 UI를 통해 관리됩니다
- 확장 프로그램 상단의 텍스트 필드에 WPScan API 키를 입력합니다
- 키를 저장하려면 "Save Key"를 클릭합니다
- 키는
C:\burpwpsscan_exports\wpsscan_config.txt (Windows는 C-Z 드라이브 시도) 또는 /tmp/burpwpscan_exports/wpsscan_config.txt (Linux/Mac)에 저장됩니다
- API 키 변경 후 Burp을 재시작할 필요가 없습니다
탐지 모드
- Live Scan: 실시간 탐지를 활성화/비활성화하려면 ON/OFF를 전환합니다
- HTTP History: 버튼을 클릭하여 모든 과거 HTTP 트래픽을 스캔합니다
- 두 모드는 별도의 로직으로 독립적으로 작동합니다
스마트 스캔 동작
- 고위험 플러그인 우선 스캔: WooCommerce, Elementor, Contact Form 7 등
- 포괄적 스캔: 취약점 누락을 방지하기 위해 모든 고위험 플러그인을 스캔합니다
- 캐시 인식: 최근에 스캔된 플러그인/테마의 API 호출을 건너뜁니다
- 중복 제거: "Scan All"은 기존 결과가 없는 사이트만 스캔합니다
URL 정규화
- 서브도메인을 루트 도메인으로 정규화합니다 (cd.krytter.com → krytter.com)
- 표준 포트(80, 443)를 URL에서 제거합니다
- HTTP와 HTTPS를 별도의 항목으로 처리합니다
- HTTP 기록은 실시간 스캔에서 이미 존재하는 사이트도 추가할 수 있습니다
문제 해결
확장 프로그램이 로드되지 않음
- Community 및 Professional 에디션 모두에서 작동합니다
- Burp의 Python 환경 확인:
Extensions → Options → Python Environment
Extensions → Errors에서 오류 메시지 확인
API 키 오류
- UI 텍스트 필드에 API 키가 입력되었는지 확인합니다
- 키를 저장하려면 "Save Key"를 클릭합니다
- API 키 형식 확인 (따옴표, 공백 없음)
- Windows: 확장 프로그램이 저장을 위해 C-Z 드라이브를 시도합니다. 실제 사용된 경로는 Burp Extender 출력에서 확인하세요
- API 키 수동 테스트:
curl -H "Authorization: Token token=YOUR_KEY" https://wpscan.com/api/v3/wordpresses/64
WordPress 사이트가 탐지되지 않음
- Burp Proxy가 활성화되어 있고 트래픽을 가로채고 있는지 확인합니다
- WordPress 사이트를 탐색합니다 (홈페이지만이 아니라)
- 과거 트래픽을 확인하려면 "Scan HTTP History" 버튼을 사용합니다
- Live Scan이 ON(녹색 버튼)인지 확인합니다
- 확장 프로그램 출력에서 탐지 패턴을 확인합니다
스캔 실패
- 인터넷 연결을 확인합니다
- WPScan API 상태 확인: https://wpscan.com/
- 속도 제한 확인 (무료 티어 하루 25회)
- 확장 프로그램 출력에서 오류 메시지 확인
보안 및 법적 고지
⚠️ 중요: 테스트에 대한 명시적 승인을 받은 웹사이트만 스캔하세요.
- 이 도구는 승인된 보안 테스트 전용입니다
- 무단 스캔은 귀하의 관할권에서 불법일 수 있습니다
- WPScan API 서비스 약관이 적용됩니다
- 테스트 전에 항상 서면 허가를 받으세요
기여
기여를 환영합니다! 다음을 따라주세요:
- 저장소를 포크합니다
- 기능 브랜치를 생성합니다
- 변경 사항을 적용합니다
- Burp Suite로 철저히 테스트합니다
- 풀 리퀘스트를 제출합니다
라이선스
MIT 라이선스 - 자세한 내용은 LICENSE 파일을 참조하세요
크레딧
- WPScan Team: 훌륭한 취약점 데이터베이스 API 제공
- PortSwigger: Burp Suite 확장성 제공
- CopyIssues Extension: UI/UX 영감 제공
지원
변경 로그
버전 기록 및 업데이트는 CHANGELOG.md를 참조하세요.
버전: 1.3.1
저자: Teycir (teycirbensoltane.tn)
최종 업데이트: 2025-11-17
Teycir 제작 | teycirbensoltane.tn