用友NCCloud fs文件服务器SQL注入漏洞分析与复现

admin 2024年6月28日19:48:41评论4 views字数 1149阅读3分49秒阅读模式

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

环境配置

l 系统:Windows Server 2016 Standard

l 数据库:Oracle11G

l JDK:java 1.8.0_202

l 复现版本:用友NCCloud2005

源码分析

FileConsoleService服务接口所在路径:

/NCCloud/home/hotwebs/fs/WEB-INF/web.xml。

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

Jar包所在位置:

/NCCloud/home/modules/uapbs/lib/pubuapbs_fsLevel-1.jar!

类方法代码位置:

/uap/pub/fs/console/FsConsoleService.class

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

从请求包request中获取username、password后,调用SuperUserVerify.checkUserPassword()方法校验该用户名username是否是合法用户,跟进去看看:

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

这里不会跳到56行。57行调试进去后跳到定位器NCLocator.class类:

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

通过NCLocator定位器得到系统当前已经实例化的该类对象。

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

Lookup()方法查找该类对应Service。

调用类Service的实现方法Impl:

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

然后调用this.baseDAO.retrieveByClause()方法,该方法前先把字符串添加到缓冲区:

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

构造一个字符串构建器,其中不包含任何字符,初始容量为16个字符。

用友NCCloud fs文件服务器SQL注入漏洞分析与复现
用友NCCloud fs文件服务器SQL注入漏洞分析与复现
用友NCCloud fs文件服务器SQL注入漏洞分析与复现

把我们的字符串以“为分隔分别append到Stringbuilder缓冲区,变量名为condition。

this.baseDAO.retrieveByClause()方法详细代码如下:构造的数据包以及结果如下:

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

调用对象持久化管理器抽象类manager的retrieveByClause()方法:

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

通过使用不同的自身构造器,最终进入到第676行的retrieveByClause()方法,并创建BeanListProcessor对象。

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

而后返回查询数据库的结果。

先看内层方法buildSql():

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

把获得的表名追加到SQL语句的缓冲区。

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

这里的condition不为空,且不是以“ORDER”开始的,按照要求追加到SQL语句的缓冲区,然后返回它。

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

SQL语句建造好后,调用executeQuery()执行SQL语句。

整个过程下来,没有对我们客户端输入的数据做过滤以及限制,就拼接到SQL语句中,导致了SQL注入漏洞。

漏洞复现

Sqlmap测试username参数的结果显示有时间盲注:

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

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

用友NCCloud fs文件服务器SQL注入漏洞分析与复现

https://www.cnblogs.com/pursue-security/p/17685151.html

用友NCCloud fs文件服务器SQL注入漏洞分析与复现
用友NCCloud fs文件服务器SQL注入漏洞分析与复现
刑天攻防实验室

扫码关注 了解更多

用友NCCloud fs文件服务器SQL注入漏洞分析与复现
用友NCCloud fs文件服务器SQL注入漏洞分析与复现
用友NCCloud fs文件服务器SQL注入漏洞分析与复现
用友NCCloud fs文件服务器SQL注入漏洞分析与复现
用友NCCloud fs文件服务器SQL注入漏洞分析与复现

原文始发于微信公众号(刑天攻防实验室):用友NCCloud fs文件服务器SQL注入漏洞分析与复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月28日19:48:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用友NCCloud fs文件服务器SQL注入漏洞分析与复现https://cn-sec.com/archives/2897152.html

发表评论

匿名网友 填写信息