CVE-2017-15991

9.8 CRITICAL

📋 TL;DR

This CVE describes a SQL injection vulnerability in Vastal I-Tech Agent Zone (The Real Estate Script) that allows attackers to execute arbitrary SQL commands through search parameters. It affects users of this real estate management software who haven't applied proper input validation. The vulnerability is particularly dangerous because it can be exploited without authentication.

💻 Affected Systems

Products:
  • Vastal I-Tech Agent Zone
  • The Real Estate Script
Versions: All versions prior to patch (specific version unknown)
Operating Systems: All platforms running PHP/MySQL
Default Config Vulnerable: ⚠️ Yes
Notes: Affects both searchCommercial.php and searchResidential.php scripts. The vulnerability exists in multiple parameters across both files.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise including data theft, data manipulation, and potential remote code execution through database functions.

🟠

Likely Case

Database information disclosure, including sensitive user data, property listings, and potentially administrative credentials.

🟢

If Mitigated

Limited impact with proper input validation and parameterized queries in place.

🌐 Internet-Facing: HIGH - The vulnerable scripts are typically exposed to the internet in real estate applications.
🏢 Internal Only: MEDIUM - If deployed internally only, risk is reduced but still significant if internal users can exploit.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Public exploit code is available on Exploit-DB. The SQL injection is straightforward and doesn't require authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown specific version - check vendor for updates

Vendor Advisory: Unknown - vendor appears to be defunct

Restart Required: No

Instructions:

1. Contact vendor for patched version 2. Apply input validation and parameterized queries 3. Sanitize all user inputs 4. Update to latest version if available

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to filter malicious SQL characters

// PHP example: filter input parameters
$property_type = mysqli_real_escape_string($conn, $_GET['property_type']);
// Or use prepared statements

Web Application Firewall Rules

linux

Implement WAF rules to block SQL injection patterns

# Example mod_security rule
SecRule ARGS "@detectSQLi" "id:1001,phase:2,deny,status:403"

🧯 If You Can't Patch

  • Implement a Web Application Firewall (WAF) with SQL injection protection rules
  • Disable or restrict access to searchCommercial.php and searchResidential.php scripts

🔍 How to Verify

Check if Vulnerable:

Test search parameters with SQL injection payloads like: searchCommercial.php?property_type=1' OR '1'='1

Check Version:

Check script headers or contact vendor - no standard version command available

Verify Fix Applied:

Test with same payloads after fix - should return error or no data instead of executing SQL

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL errors in application logs
  • Multiple failed login attempts following SQL errors
  • Long parameter values in search requests

Network Indicators:

  • HTTP requests with SQL keywords in parameters
  • Unusual database query patterns from web server

SIEM Query:

source="web_logs" AND (uri="*searchCommercial.php*" OR uri="*searchResidential.php*") AND (param="*' OR*" OR param="*UNION*" OR param="*SELECT*" OR param="*--*" OR param="*/*")

🔗 References

📤 Share & Export