泛微oa文件上传漏洞分析

admin 2023年7月31日10:57:18评论20 views字数 1462阅读4分52秒阅读模式

最近在复现这个oa网络上流传的漏洞,下面主要是代码分析。

这个漏洞跨越代码行数还挺多的,调用不算很复杂但是一个函数200多行看着很烦。分析部分可能没有那么详细,仅供学习参考。资源都来自与于互联网搜索

泛微oa文件上传漏洞分析

 


这个漏洞过程:上传文件并压缩zip格式,然后把文件信息存入数据库,通过其他路由功能解压并且从数据库中以及存储的目录下再读取出来,显示到页面。

网络上流传的任意文件上传漏洞位置在

1.workrelate/plan/util/uploaderOperate.jsp 文件上传

1.1可能需要构造值:mainId subId secId subId!=0

泛微oa文件上传漏洞分析

1.2 进入deu.uploadDocToImg 函数进入 String var21 = var1.uploadFiles(var3);

泛微oa文件上传漏洞分析

泛微oa文件上传漏洞分析

1.3 进入FileUpload uploadFiles函数 进入  var4[var5] = this.saveFile(var1[var5], this.mpdata);

泛微oa文件上传漏洞分析

1.4 进入FileUpload saveFile函数 saveFile函数主要判断ts(文件传输是否超时)文件大小是否为0 ,不为0时候是否需要进行压缩,是否需要加密解密

泛微oa文件上传漏洞分析

泛微oa文件上传漏洞分析

1.5  savefile执行到下面两步就差不多完成了任意文件上传功能。上传文件然后插入数据库。

泛微oa文件上传漏洞分析

2.访问上传文件文件 /OfficeServer

首先分析DBstep.OfficeServer这个文件,

2.1.它的请求方法需为Post.

泛微oa文件上传漏洞分析

2.2.MsgObj.Load(var1) 把表单的各个参数形成键值对hashmap格式并赋值如{"OPTION":"xxx"} {"USERNAME":""}

泛微oa文件上传漏洞分析

2.3.多个if条件语句判断mOption.equalsIgnoreCase("INSERTIMAGE") 我们需要进入这个条件语句。为什么是需要进入这个条件语句呢,因为上传图片的文件是往imagefilename数据库里插入一条。只有这个条件判断语句下代码,有对imagefilename数据库进行访问。

泛微oa文件上传漏洞分析

2.4.我们需要构造的值 OPTION:INSERTIMAGE isInsertImageNew=1 imagefileid4pic=
2.5.我们上传的文件访问路径为:String var11= GCONST.getRootPath() + File.separator + var9 即系统路径+/+文件名

泛微oa文件上传漏洞分析

2.6.MsgFileLoad(var 11)传入图片内容值,然后最后的MsgObj.Send(var2)此处为图片内容加载到前端页面 ,即我们上传的图片
  • 泛微oa文件上传漏洞分析

  • 泛微oa文件上传漏洞分析


现在这个是已经修复的,他修复代码是增加了一个后缀名判断,如果不符合这个后缀名就不允许访问加载。

if(FileType.validateFileExt(var9,this.getAllowTypes()))

泛微oa文件上传漏洞分析

通过这个漏洞,发现文件上传,要考虑上传位置,以及读取位置。以往可能没有遇见过这种跨越不同的功能/文件的文件读取以及是从数据库里加载的。

可参考:

https://gitee.com/huge1376/2022-HW-POC/blob/main/%E6%B3%9B%E5%BE%AEOA%20uploaderOperate.jsp%20%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0.md

泛微OA FileUpload任意文件上传漏洞的源码分析及复现 (qq.com)

【攻防演练】某OA 任意文件上传1day分析 (qq.com)

原文始发于微信公众号(天才少女Alpha):某oa文件上传漏洞分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月31日10:57:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   泛微oa文件上传漏洞分析https://cn-sec.com/archives/1931775.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息