freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

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

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 关注者
文章目录