用友NC6.5 importPmlSQL注入漏洞分析与复现

admin 2024年5月24日22:14:17评论1 views字数 689阅读2分17秒阅读模式

点击上方「蓝字」,关注我们

环境配置

l 系统:Winserver2008R

l 数据库:Oracle11G

l JDK:java 1.7.0_51

l 复现版本:用友NC6.5

源码分析

Jar包所在位置:

moduleswebsmlibpubwebsm_pmngLevel-1.jar!

类方法代码位置:

ncuapportalactionPortalPageManagerAction.class

用友NC6.5 importPmlSQL注入漏洞分析与复现

可以看到第218行代码:

从请求包获取“billitem”参数值后,除了判断值是否为“null”之外,并没有其它的过滤限制操作。

随后第238行代码:

直接把“billitem”追加到“where”字符序列中。

最后在第243行代码把where.tostring作为参数,

调用了

PortalServiceUtil.getPageQryService().getPagesByCondition()方法。

追入看到该方法详细代码如下:

用友NC6.5 importPmlSQL注入漏洞分析与复现

其中又调用了PtBaseDAO的retrieveByClause()方法:

用友NC6.5 importPmlSQL注入漏洞分析与复现

通过this.buildSql构建好SQL语句后,使用executeQuery()方法进行查询操作。在这些流程中也没有发现过滤危险函数或字符的操作。

纵观全流程,都没有对客户端输入的“billitem”数据做过滤以及限制,直接就拼接到SQL语句中并执行它,导致了SQL注入漏洞。

漏洞复现

Sqlmap进行测试,其测试结果显示有时间盲注:

用友NC6.5 importPmlSQL注入漏洞分析与复现

构造的数据包以及结果如下:

用友NC6.5 importPmlSQL注入漏洞分析与复现

从结果看到,成功延迟5秒。

用友NC6.5 importPmlSQL注入漏洞分析与复现
用友NC6.5 importPmlSQL注入漏洞分析与复现
刑天攻防实验室

扫码关注 了解更多

用友NC6.5 importPmlSQL注入漏洞分析与复现
用友NC6.5 importPmlSQL注入漏洞分析与复现
用友NC6.5 importPmlSQL注入漏洞分析与复现
用友NC6.5 importPmlSQL注入漏洞分析与复现
用友NC6.5 importPmlSQL注入漏洞分析与复现

原文始发于微信公众号(刑天攻防实验室):用友NC6.5 importPmlSQL注入漏洞分析与复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月24日22:14:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用友NC6.5 importPmlSQL注入漏洞分析与复现https://cn-sec.com/archives/2774427.html

发表评论

匿名网友 填写信息