
RSC Detect CVE 2025 55182
أداة كشف خفيفة الوزن لتحديد تطبيقات React Server Components وNext.js
RSC-Detect هي أداة بسيطة ومركزة مصممة لتحديد المواقع التي تستخدم React Server Components (RSC) وإطار Next.js. إنها مفيدة لـ:
يدعم هذا الدليل تثبيت Windows وLinux؛ يتم توفير macOS من خلال ملف DMG.
تأكد من توفر Git وPython.
رابط Git: https://git-scm.com/install/windows
رابط Python: https://www.python.org/ftp/python/3.13.12/python-3.13.12-amd64.exe
قم بتشغيل GIT CMD.
git clone https://github.com/fBUZk2BH/RSC-Detect-CVE-2025-55182.git
cd RSC-Detect-CVE-2025-55182
py -m pip install -r requirements.txt
py main.py
requests)قم بتعديل targetList في main.py:
if __name__ == "__main__":
targetList = [
"https://example.com",
"https://another-site.com",
]
for urlItem in targetList:
analyzeTarget(urlItem)
python main.py
Analyzing target: https://example.com
[Framework Indicators] Detected: ['__NEXT_DATA__', '/_next/static/']
[Framework Headers] Detected: ['x-powered-by: next.js']
Analyzing target: https://another-site.com
No framework indicators detected
1. إرسال طلب HTTP GET إلى URL الهدف
2. تحليل محتوى HTML ورؤوس الاستجابة
3. مطابقة الأنماط مع المؤشرات المعروفة
4. الإبلاغ عن النتائج
HTML_RSC_PATTERNS = [
'__flight__', # علامة تدفق RSC
'react-server-streaming', # مؤشر تدفق الخادم
'__REACT_SERVER_APP__', # علامة تطبيق RSC
]
CONTENT_TYPE_RSC_PATTERNS = [
'text/x-component', # نوع محتوى RSC
'text/vnd.rsc', # نوع RSC الخاص بالبائع
'application/x-react-server-component', # MIME كامل لـ RSC
]
HTML_NEXTJS_PATTERNS = [
"__NEXT_DATA__", # ترطيب بيانات Next.js
"/_next/static/", # مسارات الأصول الثابتة
"/_next/data/", # مسارات جلب البيانات
"next-head", # مكون الرأس
"next-font", # تحسين الخطوط
"next/script", # مكون البرنامج النصي
]
RSC-Detect-CVE-2025-55182/
├── main.py # البرنامج النصي الرئيسي للكشف
├── requirements.txt # تبعيات Python
└── README.md # الوثائق
targetList = [
"https://site1.com",
"https://site2.com",
"https://site3.com/app",
]
# إضافة أنماط RSC جديدة
HTML_RSC_PATTERNS.append('your-custom-pattern')
# إضافة أنماط Next.js جديدة
HTML_NEXTJS_PATTERNS.append('custom-next-indicator')
# تعديل مهلة الطلب (الافتراضية: 10 ثوانٍ)
httpResponse = requests.get(targetUrl, timeout=30)
def loadTargetsFromFile(filepath):
with open(filepath, 'r') as f:
return [line.strip() for line in f if line.strip()]
if __name__ == "__main__":
targetList = loadTargetsFromFile('targets.txt')
for urlItem in targetList:
analyzeTarget(urlItem)
import json
def analyzeTargetJson(targetUrl):
results = {
'url': targetUrl,
'rsc_markers': [],
'content_types': [],
'nextjs_html': [],
'nextjs_headers': []
}
try:
httpResponse = requests.get(targetUrl, timeout=10)
htmlContentLower = httpResponse.text.lower()
headersContentLower = str(httpResponse.headers).lower()
results['rsc_markers'] = [p for p in HTML_RSC_PATTERNS if p.lower() in htmlContentLower]
results['content_types'] = [p for p in CONTENT_TYPE_RSC_PATTERNS if p.lower() in headersContentLower]
results['nextjs_html'] = [p for p in HTML_NEXTJS_PATTERNS if p.lower() in htmlContentLower]
results['nextjs_headers'] = [p for p in HEADER_NEXTJS_PATTERNS if p.lower() in headersContentLower]
except Exception as e:
results['error'] = str(e)
return results
# الاستخدام
results = [analyzeTargetJson(url) for url in targetList]
print(json.dumps(results, indent=2))
from concurrent.futures import ThreadPoolExecutor
def scanConcurrently(targets, maxWorkers=5):
with ThreadPoolExecutor(max_workers=maxWorkers) as executor:
executor.map(analyzeTarget, targets)
# إضافة منطق إعادة المحاولة
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
session = requests.Session()
retries = Retry(total=3, backoff_factor=0.5)
session.mount('https://', HTTPAdapter(max_retries=retries))
# تعطيل التحقق من SSL (غير موصى به للإنتاج)
httpResponse = requests.get(targetUrl, timeout=10, verify=False)
# التعامل مع الترميزات المختلفة
httpResponse.encoding = httpResponse.apparent_encoding
هذه الأداة مخصصة لـ:
تأكد دائمًا من حصولك على الإذن قبل مسح أهداف لا تملكها.
requests>=2.28.0
urllib3>=1.26.0
المساهمات مرحب بها! يمكنك المساعدة عن طريق:
رخصة MIT - مجاني للاستخدام الشخصي والتجاري.
بسيط • سريع • فعال
⭐ قم بنجمة إذا وجدت هذا مفيدًا!
| الفئة | الأنماط المكتشفة |
|---|
| 🔵 علامات RSC | __flight__, react-server-streaming, __REACT_SERVER_APP__ |
| 📄 نوع المحتوى | text/x-component, text/vnd.rsc, application/x-react-server-component |
| ⚡ HTML لـ Next.js | __NEXT_DATA__, /_next/static/, next-font, next/script |
| 📋 الرؤوس | x-powered-by: next.js |
| الإطار | معدل الكشف | ملاحظات |
|---|
| Next.js 13+ | عالي | مؤشرات متعددة موجودة |
| Next.js 12 | عالي | __NEXT_DATA__ موثوق |
| React RSC | متوسط | يعتمد على التنفيذ |
| React مخصص | منخفض | يتطلب أنماط مخصصة |