渗透系列之mysql时间盲注

渗透系列之mysql时间盲注

学习思路点:

如何判断时间盲注

 

  1. 时间盲注函数介绍

Mysq里面延时注入需要使用到的函数为sleep()

一般使用以下语句进行注入判断,if(exp1,exp2,exp3) 含义就是:如果exp1为真,那么执行exp2,否则执行exp3

 

简单使用延时注入测试数据库的用户长度,poc为: and if(length(user()>1),1,sleep(5))

exp1= if(length(user()>1 , exp2=1 ,exp3=sleep(5)

 

含义就是:如果用户长度大于1,测试正常返回,无延时

              如果小于1,测试会执行延时操作.根据二分法不断精确其用户长度即可。

2、漏洞点分析

某查询功能

 

使用bp抓包,正常查询如下

 

lastTime参数使用单引号测试,无结果返回

 

lastTime参数使用两个单引号闭合语句测试,有结果返回。

 

正常使用以下payload进行盲注

 

‘||1/1||’,正常返回,返回结果Content-Length:为846,时间为28秒

 

 

‘||1/0||’, 返回结果Content-Length:为846,时间为23秒

 

 

根据两个结果对比,目前无法使用基于布尔的盲注进行注入,payload为’||1/(ascii(substr(user(),1,1))=95)||’;

但是可以看到使用两种方法请求之后,服务器响应时间有差异。

故可以使用基于时间的盲注进行注入,payload为:

‘and if(ascii(substr(user(),1,1))=95,1,sleep(5))   含义就是,如果exp1= ascii(substr(user(),1,1))=95成功,那么执行exp2=1,属于正常查询。

如果exp1= ascii(substr(user(),1,1))=95 错误,那么执行sleep(5) ,页面返回结果会出现延时,具体看bp返回包的右下角的时间参数

 

Bp爆破用户名,结果如下:

 

 

其他东西也是使用相同手法跑,写个脚本即可。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值