Hospital Management System SQL注入(CVE-2022-24263)

Hospital Management System SQL注入(CVE-2022-24263)

*一、漏洞概述 **

*1.1 漏洞简介*

·漏洞名称:Hospital Management System SQL注入

·漏洞编号:CVE-2022-24263

·漏洞类型:SQL注入

·漏洞威胁等级:SQL注入

·影响范围:唯一版本

·利用条件:默认配置

*1.2 组件描述*

Elite Graphix Elite Cms是印度Elite Graphix公司的一个用 Php 语言编写的 Web 内容管理。用于存储和组织信息和文档的平台。

*1.3 漏洞描述*

Elite Graphix Elite Cms 存在SQL注入漏洞,该漏洞源于基于数据库的应用缺少对外部输入SQL语句的验证。攻击者可利用该漏洞执行非法SQL命令。

*二、漏洞复现*

*2.1 应用协议*

http

*2.2 环境搭建*

1.下载源码到本地:https://github.com/kishan0725/Hospital-Management-System

2.提前在本地搭建数据库

在这里插入图片描述

*2.3 漏洞复现 **

1.漏洞uri:Hospital-Management-System-master/index1.php

在这里插入图片描述

2.参数emailpassword2都存在注入漏洞

payload:

email=' or 1 limit 0,1#&password2=123&patsub=Login

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=image-20230731

*三、漏洞分析*

*3.1 技术背景*

\

*3.2 代码分析*

在$query中执行select语句,参数email和password2未作过滤处理,单引号绕过后可执行恶意sql注入语句

#/func.php
<?php
session_start();
$con=mysqli_connect("localhost","root","root","myhmsdb");
if(isset($_POST['patsub'])){
	$email=$_POST['email'];
	$password=$_POST['password2'];
	$query="select * from patreg where email='$email' and password='$password';";
	$result=mysqli_query($con,$query);

在这里插入图片描述

*3.3 流量分析 **

POST请求,漏洞地址Hospital-Management-System-master/func.phpemailpassword2后单引号闭合,后面跟随sql语句,返回包为302,跳转地址为:Location:admin-panel.php
在这里插入图片描述

正常流量如下
在这里插入图片描述

*3.4 绕过方式*

单引号闭合绕过

*四、漏洞检测*

*4.1 组件版本自检*

以下版本受该漏洞影响:唯一版本

*4.2 漏洞触发前提自检*

*4.3 漏洞检测规则、插件编写思路*

以下为该漏洞请求包特征

1./func.php

2.email/password2后跟sql语句

3.302 Found

4.Location: admin-panel.php

*4.4 研判建议 **

通过攻击流量请求头的payload,在本地还原看是否有效即可

*五、防范建议*

*5.1 官方修复建议*

未修补

*5.2 临时修复建议*

写入sql过滤规则,黑名单等

六、*参考链接*

源码下载url:https://github.com/kishan0725/Hospital-Management-System

构建一个医院数据库管理系统,用MySql和Java实现。结果比医院实际需要的要小得多,但同时也比医生要求的要多。 在HDBMS/src/HDBMS Info/下提供了ERD、UML、登录系统的初始凭据,以及可以导入MySql的数据库备份(带有模式创建说明), 在DataScript下提供了我用来自动填充数据库表(使用自动生成的数据)的脚本。 我选择构建一个医院数据库管理系统,用MySql和Java实现。 结果比医院实际需要的要小得多,但同时也比医生要求的要多。在HDBMS/src/HDBMS Info/下提供了ERD、UML、登录系统的初始凭据, 以及可以导入MySql的数据库备份(带有模式创建说明),在DataScript下提供了我用来自动填充数据库表(使用自动生成的数据)的脚本。- ->注意:您需要在HDBMS/src/DatabaseAPI中的DatabaseAPI类中输入MySql服务器的用户名和密码/DatabaseHandler.java 实现了核心数据库API。 软删除实现-没有从数据库中删除-历史友好。 遵循编程和面向对象的最佳实践。 实现了具有不同访问权限的多个用户类型。 例外情况应谨慎处理。 所有表视图(在GUI中)至少跨越2个HDBMS表。 材料设计登录窗口。 使用外部增强的、外观现代的JavaFX库。 实现每个用户类型的最佳需求,易于使用,功能强大。 在几乎每个GUI窗口的底部提供一个“状态”栏,以通知用户所请求的操作(查询)的结果。 为每个GUI使用一个特殊的图标。 对于所有输入字段的组,它首先检查是否所有字段都填充了正确格式的数据,例如: A.患者/员工姓名:至少3个字符,均为字母 B.患者/员工ID:至少7个字符,均为数字 C.患者/员工的出生日期:不能来自未来 D.患者/员工电话号码:至少7个字符,均为数字 约定的日期和时间不能是过去的 F.在添加预约(或处方)前检查患者是否存在患者的病患 G.在添加约会之前,检查时间段是否空闲 H.将处方成本添加到记录之前,检查其是否为有效的正数字格式 一、员工用户名:至少5个字符,至少1个字母,只允许字母和数字 J.在添加新员工的用户名之前,首先检查该用户名是否已存在 K.检查密码和重密码是否匹配 L.员工工资:必须有一个有效的正数值 M.仅当新地址是唯一的时才添加新地址,否则将获取现有地址的adrID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tkite

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值