Projectworlds在线招生系统V1.0 SQL注入漏洞利用分析

本文详细分析了Projectworlds在线招生系统V1.0版本中/viewform.php文件存在的SQL注入漏洞,包括漏洞原理、利用方式、影响范围以及修复建议,提供了具体的Payload和测试截图。

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查询并执行未经授权的操作。

Image

影响

攻击者可以利用此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.定期安全审计:

定期进行代码和系统安全审计,及时识别和修复潜在的安全漏洞。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计