环境配置
l 系统:Winserver2016
l 数据库:Oracle11G
l JDK:java 1.7.0_51
l 复现版本:用友NC6.5
源码分析
Jar包所在目录为:yonyouNC6.5/modules/uapss/lib/pubuapss_fwsearchIILevel-1.jar
类对应的路径为:
/com/yonyou/ante/servlet/FileReceiveServlet.class ,类方法代码如下图所示:
可以看到无论是Get方法和Post方法都调用了
this.handleRequest(),追踪进去看看。
handleRequest()方法代码如下图所示:
通过readObject进行反序列化后,将反序列化后的结果转换为Map类型,其中Map的键为String、值为Object。再获取metaInfo的“TARGET_FILE_PATH”和“FILE_NAME”属性来当作path和filename,最后将request中的二进制数据当作文件的内容进行写入。可以看到在整个文件上传的过程中,并没有对文件的后缀或者内容做任何限制,所以我们可以通过这个漏洞在任意目录下写入任意内容的任意后缀文件。
漏洞验证
构造的数据包如下图所示:
发送数据包,即可在相应路径下看到该文件如下图所示:
蚁剑连接成功如下图所示:
公众号:
刑天攻防实验室
扫码关注 了解更多内容
原文始发于微信公众号(刑天攻防实验室):用友NC6.5 FileReceiveServlet.class 任意文件上传漏洞分析及复现
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论