Burpsuite测试sql时间盲注

时间盲注简介

基于时间的盲注是实际漏洞挖掘场景中最为常用的一个注入手段,因为相比报错注入或者是布尔注入,针对基于时间盲注的防御措施较稀少,较多的开发人员专注于页面的输出控制,忽略了基于时间盲注这种无需关注输出的内容而是针对输出过程做判断的手段

有关注入专有名词说明:

  • 报错注入:从页面中提取报错信息获取数据
  • 联合查询:控制页面的输出获取数据
  • 布尔注入:控制页面返回的异同判断数据
  • 时间注入:控制输出时间判断数据

时间盲注常用函数

sleep():

基于的原理是,当对数据库进行查询操作,如果查询的条件不存在,语句执行的时间便是0.但往往语句的执行速度非常快,以至于得到的执行时间基本为0,通过控制sql语句的执行时间来判断数据

select 0 and sleep(5);
//1 row in set (0.00 sec)
select 1 and sleep(5);
//1 row in set (5.00 sec)

benchmark():

选择表达式多次执行,通过该方式来延迟sql结果的输出

select benchmark(1e8,1*1);
//1 row in set (1.36 sec)
select benchmark(1e9,1*1);
//1 row in set (13.61 sec)

开始测试

Burp截取可能存在SQL注入的网站,将数据包发送至Repeater模块进行测试

image-20210726181245929

正常响应时间

image-20210726182815999

参数中添加sql语句进行测试

image-20210726182631745

由此可以判断测试结果为存在时间注入

例如可以做一个简单地if判断,如果user为root则正常响应,user不为root恻响应时间延迟4秒

image-20210726183959826

以上则为基本的时间注入介绍

作者博客:不拿呐のBlog

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐