目录:
0x01 CTF题目中关于load_file()、char()、hex()、unhex()、like、过滤空格、过滤引号及相关问题
0x02 某简单题目中关于order by利用排序布尔盲注题目及源码
0x03 某CTF题解,盲注+泄露+反序列化
0x01 CTF题目中关于load_file()、char()、hex()、unhex()、like、过滤空格、过滤引号及相关问题
1、load_file()函数
它用来读取文件内容。
select load_file('c:/clog.txt');
盲注时,可以配合ascii(substr(select load_file('c:/clog.txt'))) > 97 使用,泄露出文件内容。
load_file重点好处在于,当过滤引号后,into outfile 'xxxx' 就不能用了,但load_file参数支持0x、char()转换结果、引号、select子句结果。
它确实太好了所以再强调一下hhhh
参数可以用4种:
loadfile(0x616161);
loadfile( char(97,97,97) );
loadfile('c:/clog.txt');
loadfile( (select path form table where id=1) );
着实有些强大,给SQL注入泄露文件内容提供了方便
可以泄露出config.php看看数据库连接密码。
另外强大之处在于位置灵活,load_file()在union中、在where中都可以
在union中:
union后的红色部分,成功读到了c:/clog.txt的内容,在回显第三行
前两行是第一个select的。
绿色是记得union时,切记保持字段数和第一个select一致!2个字段,易错。
在where中:
select * from goods where id=1 and substr( load_file('c:/clog.txt'),1,1 )='a';
select * from goods where id=1 and substr( load_file('c:/clog.txt'),1,1 )='f';
load_file获得的内容是flag 猜第一个字符是a无返回,猜是f正常满足where id=1 and true
(题外话:直接在MYSQL中可以select附加insert语句,但PHP函数mysql_query不能执行)
2、char()函数
用来ascii码转字符串。
它可以配合load_file函数,作为其参数过防火墙。
select char(97,98,99);
可以得到abc
配合用法: