freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

CVE-2022-3323:研华iView SQL注入漏洞复现
2023-02-14 14:10:07
所属地 北京

Advantech iView 是中国台湾研华(Advantech)公司的一个基于简单网络协议(SNMP)来对 B + B SmartWorx 设备进行管理的软件。

研华iView 5.7.04.6469版本存在SQL注入漏洞,该漏洞源于在其ConfigurationServlet端点中存在缺陷,攻击者可利用漏洞在setConfiguration操作中创建一个特殊的column_value参数,以绕过com.imc.iview.utils.CUtils.checkSQLInjection()中的检查来执行SQL语句,获取数据库数据。

漏洞状态

漏洞细节漏洞POC漏洞EXP在野利用
未知

漏洞描述

‍漏洞名称

研华 iView SQL注入漏洞

CVE编号CVE-2022-3323
漏洞类型SQL注入
漏洞等级高危(7.5)
公开状态公开
漏洞描述研华iView 5.7.04.6469版本存在SQL注入漏洞,该漏洞源于在其ConfigurationServlet端点中存在缺陷,攻击者可利用漏洞在setConfiguration操作中创建一个特殊的column_value参数,以绕过com.imc.iview.utils.CUtils.checkSQLInjection()中的检查来执行SQL语句,获取数据库数据。
时间线2022-09-26 获得CVE编号
影响产品

研华 iView 5.7.04.6469

漏洞复现

1. 复现环境

靶机:Win10(192.168.44.131)

软件:研华 iView 5.7.04.6469

2. 复现步骤

第一步:打开Apache Tomcat服务,确保其已开启,如下图所示:

第二步:执行python 脚本,脚本如下:

当com.imc.iview.utils.CUtils.checkSQLInjection()对column_value参数检查存在缺陷时,脚本执行完毕后可以获取iView-管理员密码,如下图所示:

漏洞分析

Python脚本执行过程中会发起post请求,当column_vaule的值为“(SELECT IF(LENGTH((SELECT`strUserPassword`FROM(user_table) /*!WHERE*/ strUserName = 'admin')) = 8,0,99999999999999999))”时,post请求的返回值为“Configuration Update Success.”,如下图所示:

通过监控Mysql命令执行情况发现上图请求会执行如下SQL命令,通过该命令可以实现对user_table表中账户为“admin”的密码的长度进行判断,SQL命令如下图所示:

分析com.imc.iview.ui.components.configuration.ConfigurationServlet.doPost(),当page_action_type为setConfiguration时调用

com.imc.iview.ui.components.configuration.ConfigurationServlet .setConfiguration(),如下图所示:

跟踪setConfiguration()发现其会调用com.imc.iview.utils.CUtils.checkSQLInjection()对column_value进行检查,如果检查通过则执行78行代码,在该行会调用com.imc.iview.database. setConfigurationItem(),如下图所示:

跟进com.imc.iview.database. setConfigurationItem(),此处会先进行SQL命令拼接之后执行拼接后的命令,如下图所示:

通过上述分析可知SQL命令执行的前提是column_value值可以通过checkSQLInjection()的检测,分析com.imc.iview.utils.CUtils.checkSQLInjection()发现其虽然对关键字进行了检测,但是检测不严格,如当column_value中同时包含“select”和“from”时调用com.imc.iview.utils.Cutils.checkCommentStr()做进一步检查,如下图所示:

跟进com.imc.iview.utils.Cutils.checkCommentStr()发现,该方法仅对 “select”和“from”之间是否包含“/*”、“*/”及空格做了检查,很明显检查不严格,造成SQL注入漏洞。

修复建议

建议将软件更新至5.7.04.6583或更高版本以解决漏洞。

# 漏洞 # 渗透测试 # 网络安全 # 漏洞分析
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录