
This repository is to demonstrate and practice my forensic/vulnerability analysis skills by reproducing a web-related CVE in a safe environment.
This repository simulates a reproduction of a web-related CVE (CVE-2025-1489) in a safe environment to demonstrate and practice my forensic/vulnerability analysis skills.
The vulnerability identified and reproduced is a stored cross-site scripting (XSS) vulnerability in the WordPress plugin WP-Appbox (version 4.5.4). The flaw allows attacker-controlled input placed in a post's Appbox shortcode to be rendered into page output due to insufficient input sanitization and output escaping on user-escaped attributes, thus enabling execution of malicious script via attribute contexts. The vulnerability is patched in later versions of WP-Appbox (version 4.5.5+).
The plugin exposes a shortcode [appbox ...] that accepts an applciation ID appID and user-provided shortcode attributes, which are not properly sanitized or escaped at the entry point of the plugin.
In the source code file createoutput.class.php, parts of the shortcode data are inserted into HTML attributes or inline styles, which allows for attribute-context injection (lines 199 & 438-447). By crafting an appID that forces a background image, I was able to confirm repeatable outbound GET requests to an attacker server, which are clear indicators server-side stored XSS.
Components:
├── attacker/
│ ├── server.py # Attacker HTTP server to serve and log requests
│ └── requests.log # Logs inbound requests into attacker server from WordPress browser
├── README.md # Main overview & reproduction instructions
├── docker-compose.yml # Docker configuration settings
└── full_report.pdf # Full report including analysis, mitigation, findings, and scope of impact
Setup:
Prerequisites: Docker Desktop and svn installed on your host.
Steps:
svn to pull tag 4.5.4:svn checkout https://plugins.svn.wordpress.org/wp-appbox/tags/4.5.4 wp-appbox-4.5.4
docker-compose up -d
WordPress setup:
localhost:8000 to access WordPress and create an Admin userLogin to attacker user and navigate to Posts > Add New > use Shortcode block to create malicious payload to exploit stored XSS vulnerability.