用友NC任意文件上传 分析报告

用友NC是一款企业级管理软件,在大中型企业广泛使用。实现建模、开发、继承、运行、管理一体化的IT解决方案信息化平台。用友NC 为C/S 架构,使用JAVA编程语言开发,客户端可直接使用UClient,服务端接口为HTTP。
用友NC6.5的某个页面,存在任意文件上传漏洞。漏洞成因在于上传文件处未作类型限制,未经身份验证的攻击者可通过向目标系统发送特制数据包来利用此漏洞,成功利用此漏洞的远程攻击者可在目标系统上传任意文件执行命令。
获取用友NC源码,对其中部分jar包进行反编译。分析web.xml文件中的函数调用逻辑,发现/aim/equipmap/accept.jsp存在未授权访问。

查看/aim/equipmap/accept.jsp文件,发现fname的参数可以自定义,并且没有任何的过滤,且上传路径为/加上fname参数提供的路径构成,所以可以直接构造用友NC的web绝对路径,并且利用../可以穿越到根路径,实现任意文件路径的写入

由于代码本身采用了黑名单的方式来限制上传的文件后缀,但是黑名单中没有jspx文件后缀,所以可以采用jspx文件类型的webshell来进行getshell。

至此,成功定位漏洞利用点,确定该漏洞因用友NC在未授权访问/aim/equipmap/accept.jsp文件时将未经过滤的HTTP请求体内容进行上传,最终导致攻击者上传任意文件。
漏洞复现
(1)攻击数据包构建:使用POST请求访问仿真环境/aim/equipmap/accept.jsp文件,发送恶意上传包,详情如下。

(2)攻击结果验证:成功连接webshell管理工具,详情如下。


如果我们的文章对你有帮助,就把我们“设为星标”吧!
↓↓↓
3秒加星标,这样就不容易错过文章推送啦!


往期回顾

请长按下方图片
识别二维码 关注河北镌远
为客户创造价值
与客户共同成长




