CVE-2023-30076
📋 TL;DR
This vulnerability allows attackers to execute arbitrary SQL commands through the print_judges.php endpoint in Judging Management System v1.0. Attackers can potentially read, modify, or delete database content, including sensitive user data. Organizations using this specific version of the software are affected.
💻 Affected Systems
- Sourcecodester Judging Management System
📦 What is this software?
Judging Management System by Judging Management System Project
⚠️ Risk & Real-World Impact
Worst Case
Complete database compromise leading to data theft, data destruction, or full system takeover via SQL injection to RCE chaining.
Likely Case
Unauthorized access to sensitive judging data, participant information, and potential credential theft from database.
If Mitigated
Limited impact with proper input validation, WAF rules, and database permission restrictions in place.
🎯 Exploit Status
Simple SQL injection with public proof-of-concept available. No authentication required to exploit.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Unknown
Vendor Advisory: Not available
Restart Required: No
Instructions:
No official patch available. Consider implementing input validation and parameterized queries manually or replacing the software.
🔧 Temporary Workarounds
Input Validation and Sanitization
allAdd server-side validation for sub_event_id parameter to accept only numeric values
Modify print_judges.php to validate: if(!is_numeric($_GET['sub_event_id'])) { die('Invalid input'); }
Web Application Firewall Rule
allBlock SQL injection patterns targeting the vulnerable endpoint
WAF rule: deny requests to /php-jms/print_judges.php containing SQL keywords in parameters
🧯 If You Can't Patch
- Block external access to /php-jms/print_judges.php via firewall or reverse proxy
- Implement database user with minimal permissions (read-only if possible) for the application
🔍 How to Verify
Check if Vulnerable:
Test endpoint with SQL injection payload: /php-jms/print_judges.php?sub_event_id=1' OR '1'='1
Check Version:
Check software version in admin panel or readme files
Verify Fix Applied:
Test with same payload; should return error or no data instead of executing SQL
📡 Detection & Monitoring
Log Indicators:
- Multiple requests to print_judges.php with SQL keywords in parameters
- Unusual database query patterns from web server IP
Network Indicators:
- HTTP requests containing SQL injection patterns to vulnerable endpoint
- Unusual outbound database connections from web server
SIEM Query:
source="web_logs" AND uri="/php-jms/print_judges.php" AND (query="UNION" OR query="SELECT" OR query="OR '1'='1")