
Vuln lab: MainWP Dashboard <= 3.1.2 Unauthentifiziertes Stored XSS
Verwundbares Labor für CVE-2016-15041: Nicht authentifiziertes gespeichertes XSS im MainWP Dashboard WordPress-Plugin <= 3.1.2.
docker compose up -d --build
Warten Sie ~30 Sekunden für die automatische Einrichtung. Das Labor gibt ein Banner aus, wenn es bereit ist:
docker compose logs -f wordpress
| Ressource | URL / Anmeldedaten |
|---|
| WordPress | http://localhost:8088 |
| Admin-Login | admin / admin123 |
| Verwundbarer Endpunkt | http://localhost:8088/wp-admin/admin-post.php?page=mainwp-setup&step=purchase_extension |
Nuclei:
nuclei -t https://raw.githubusercontent.com/projectdiscovery/nuclei-templates/main/http/cves/2016/CVE-2016-15041.yaml -u http://localhost:8088
Manueller PoC:
./scripts/poc.sh http://localhost:8088
docker compose down -v
| Feld | Wert |
|---|---|
| CVE | CVE-2016-15041 |
| Schweregrad | Hoch |
| Typ | Gespeichertes XSS (Nicht authentifiziert) |
| Betroffen | MainWP Dashboard <= 3.1.2 |
| Behoben | 3.1.3 |
Der MainWP Dashboard Quick Setup Wizard ist ohne Authentifizierung zugänglich. Ein Angreifer kann JavaScript über den Parameter mwp_setup_purchase_username injizieren. Die Payload wird in WordPress-Optionen gespeichert und ohne Escaping gerendert, wenn ein Administrator die Erweiterungsseite aufruft.
GET /wp-admin/admin-post.php?page=mainwp-setup&step=purchase_extension → CSRF-Nonce abrufen (keine Authentifizierung erforderlich)POST XSS-Payload mit dem Nonce senden (keine Authentifizierung erforderlich)Das verwundbare Plugin (v3.1.2) wurde aus der WordPress SVN-Revision r1394563 (14. April 2016) bezogen. Es wurden kleinere PHP-8-Kompatibilitätspatches angewendet, die die Sicherheitslücke nicht beeinflussen:
__autoload() durch spl_autoload_register()Die XSS-Sicherheitslücke existiert in view/view-mainwp-extensions-view.php Zeile 74, wo $username ohne esc_attr() ausgegeben wird.