通达OA 11.7 任意命令执行漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

# 通达OA 11.7 有条件的任意命令执行 --- 这是一个由有条件的任意用户登录+低权限文件上传+低权限目录穿越+低权限文件包含组成。可能是盯着国内OA的人太多了,这个漏洞在2020年9月28号的11.8版本中被更新修复,比较可惜的是,一次更新修复了全部的漏洞逻辑,不禁令人惊叹。 今天就一起来看看整个漏洞的逻辑~ <!--more--> # 有条件的任意用户登录 其实如果关注过通达OA的朋友,应该都会知道通达OA是一个特别庞杂的OA系统,整个系统涉及到2万多个PHP文件,其中除了能访问到的Web逻辑以外,OA还内置了特别多的其他功能,可能是用于定制版的OA,也可能压根就是逻辑太多就有很多忘记了。这里的这个漏洞就特别的朴素。 ``` mobile\auth_mobi.php ``` ![image-20210303143217825](https://lorexxar-blog.oss-cn-shanghai.aliyuncs.com/blog/image-20210303143217825.png) 这里可以注意到左边传入的uid会直接从数据库查询,然后查询出来的session id会被直接赋值给当前用户。 也就是说,如果当前站点有正在登录的用户,我们通过遍历uid就可以登录所有当前在线的账号。(唯一的问题是,通达OA有自动掉线机制,不过OA系统有在线用户都很正常) 这里的修复方案也很奇怪,可以注意看上图中右边就是11.8的代码,这段代码直接就被删除了... # 低权限文件上传+低权限目录穿越 在通达OA中,其实涉及到上传文件的地方并不少,而且后台本身就有上传文件的功能,但是通达OA在这方面做的比较好,它设计了两个限制给文件上传。 首先我们关注上传文件的逻辑,主要函数为`td_copy`和`td_move_uploaded_file`这两个,这里我们先关注`td_move_uploaded_file` ``` function td_move_uploaded_file($filename, $destination) { if (!is_uploadable($destination, true)) { Message(_("禁止"), _("禁止创建此类型文件")); Button_Back(); exit(); } return...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息