SQL注入-时间盲注

news2024/11/26 8:24:16

时间盲注

盲注就是在SQL注入过程中,SQL语句执行后,查询到的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。
 

时间盲注特性

在页面中,不管用户输入什么,数据交互完成以后目标网站没有错误和正确的页面回显,这种情况我们可以利用时间函数来判断数据有没有在目标数据中得到执行。当然也需要构造闭合。
 
如下图不管我们输入什么,页面显示结果都是一样的
9c68b7a115084af4994d7fdbb3876578.png
9545bc0a09394aad9aab51e0d2bfe2ad.png
18b7b0c19d8c407199b726f4aca6b3d7.png
 

时间盲注的基本流程

可以看到攻击流程和布尔盲注流程一样,其实方法也无差别

1、判断是否存在注入
2、获取数据库长度
3、逐字猜解数据库名
4、猜解表名数量
5、猜解某个表名长度
6、逐字猜解表名
7、猜解列名数量
8、猜解某个列名长度
9、逐字猜解列名
10、判断数据数量
11、猜解某条数据长度
12、逐位猜解数据

攻击过程

判断是否存在注入

由于没有任何的回显内容,所以无法通过正常的方法判断是否存在注入,可以使用1 and sleep(5)或者1' and sleep(5)#进行测试,如果页面执行有延迟,说明存在漏洞。
sleep(5)的含义是五秒后做出回应
6110ff68d85342a3930f97aad49f2a00.png
发现这个延时了两秒左右,这肯定不是数字型
4682d19e1a494885afe3664ce0f92949.png
04a8da674bad44cca6332d7f359c30cd.png
发现延时7秒左右,是因为我们网络也有延迟,在数据库中进行查询就是准确的时间。所以他是单引号闭合。
9e6789650201459389fd3f23a3b9dc79.png

获取数据库长度

可以使用if语句进行判断,语法格式:if(expr1, expr2, expr3):判断语句如果第一个语句正确就执行第二个语句,否则执行第三个语句如何理解这句话呢?我们可以先在数据库执行下面这条语句
1' and if(length(database())=8,sleep(5),1)--+ ,查询语句与布尔盲注并无区别只是用了两个函数
bd1ce6bee42540dbad878ac7aeaa9830.png
c61bddfec74d4033b58a109cbf9840dd.png
 

获取数据库名

1' and if(ascii(substr(database(),1,1))=115,这里有些区别的就是使用burpsuite爆破时有写区别

65c032a5e4864045b847e82f5b73467d.png

536adc3e9c4e429895fee05d1e4a55e5.png

再根据响应长度判断你会发现不管是什么长度他们返回的都是一样的,一开始也说了时间盲注不管查询对错返回的都是一样的

1334bbc2b1704fb6921e2b58a423bbc2.png

要将这两个勾选上,查看响应时间,网页响应时间是七秒左右这样就能判断出来了

8dc41d9205c94b7f85b467d6e9546468.png

b6be054080b74bb58cd5ef59bdc71734.png

查询完数据库的长度和名字就会发现核心查询语句和布尔盲注一模一样,这里我就不再赘述,不理解的小伙伴移步我的上一篇文章布尔盲注http://t.csdnimg.cn/031dY

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】文件系统和软硬链接

❤️前言 今天的这篇博客主要是总结前几天学习的关于Linux系统下的文件系统以及软硬链接的内容。希望能对大家有所帮助。 正文 我们今天要学习关于Linux下的文件系统——EXT2的知识,需要注意的是这里的文件和我们以前遇到的那些文件并不相同,以前我们主…

安装配置Spark集群

安装Spark集群主要包括以下步骤: 1、下载Spark安装包,在各节点中安装部署spark集群 2、配置整合 3、启动并测试 下载Spark 可以从官方网站下载合适的版本。当前环境已经提供了安装包,存放在 /opt/software目录下。 在node1节点上安装Sp…

日期问题 刷题笔记

思路 枚举 19600101 到20591231这个区间的数 获得年月日 判断是否合法 如果合法 关于题目给出的日期 有三种可能 年/月/日 日/月/年 月/日/年 判断 是否和题目给出的日期符合 如果符合 输出 闰年{ 1.被4整除不被100整除 2.被400整除} 补位写法“%02d" 如果不…

数据“隐领”未来!【隐私计算实训营】限时免费招募!

数智经济时代,为强化个人隐私信息保护,国家颁布了《国家安全法》、《网络安全法》、《数据安全法》等数据安全法律法规,并严厉处罚数据违规出海、侵权、滥用等问题。数据安全和隐私保护成为大家的共识。隐私计算技术在此背景下应运而生&#…

Linux——线程(3)

在上一篇博客中,我介绍了关于Linux系统中pthread库线程的接口使用以 及对于pthread库的理解。但是我们单单会使用多线程的接口还不够,因为 在使用多线程解决问题的时候,由于进程中的数据对于其中的线程来说大 多是共享的,这也势必…

12双体系Java学习之局部变量和作用域

局部变量 局部变量的作用域 参数变量

找不到mfc140u.dll怎么办?修复缺失mfc140u.dll的多种方案分享

mfc140u.dll文件是一个重要的动态链接库文件,它在Windows操作系统中发挥着关键的作用。由于各种原因,例如应用程序冲突或系统错误等,mfc140u.dll文件有时会出现丢失的情况。一旦发生这种问题,运行依赖此文件的应用程序将无法正常启…

【C语言】初步解决指针疑惑

✨✨ 欢迎大家来到莉莉的博文✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 目录 一.理解内存和编址 1.1理解内存 1.2理解编址 二.指针变量和地址 1.1取地址操作符 三.指针变量和解引用操作符(*) …

设计模式八:观察者模式

文章目录 1、观察者模式2、示例3、spring中的观察者模式3.1 spring观察者模式的使用3.2 spring观察者模式原理解析 1、观察者模式 观察者模式(Observer Design Pattern),也叫做发布订阅模式(Publish-Subscribe Design Pattern)、模…

音视频学习笔记——c++多线程(二)

✊✊✊🌈大家好!本篇文章是多线程系列第二篇文章😇。首先讲解了利用mutex解决多线程数据共享问题,举例更好理解lock和unlock的使用方法,以及错误操作造成的死锁问题,最后讲解了lock_guard与unique_lock使用…

LEETCODE3

法一:记忆化递归 int climbStairsRecursive(int n, int* memo) {if (n < 2) {return n;}if (memo[n] > 0) {return memo[n];}memo[n] climbStairsRecursive(n - 1, memo) climbStairsRecursive(n - 2, memo);return memo[n]; }int climbStairs(int n) {int* memo (in…

QML 控件添加键盘事件

在QML中&#xff0c;可以使用Keys类型来处理键盘事件。以下是一个简单的示例&#xff0c;演示如何在QML控件中添加键盘事件&#xff1a; import QtQuick 2.12 import QtQuick.Window 2.12Window {visible: truewidth: 640height: 480title: qsTr("Hello World")Recta…

Linux的MySQL安装与卸载

安装与卸载 卸载安装配置yum源安装MySQL 声明一下本人用的Linux版本是CentOs7.9版本的。 卸载 如果我们用的云服务器&#xff0c;云服务器可能会自带MySQL或者mariadb&#xff08;其实就是MySQL的一个开源分支&#xff09;&#xff0c;如果我们不想用自带的&#xff0c;需要先…

理论学习 BatchNorm2d

import torch import torch.nn as nn# With Learnable Parameters m nn.BatchNorm2d(100) # Without Learnable Parameters m nn.BatchNorm2d(100, affineFalse) input torch.randn(20, 100, 35, 45) output m(input)print(output) print(output.shape)这段代码展示了如何使…

mybatis-plus-generator 使用 velocity 生成前后台代码

操作步骤 1&#xff09;准备mybatis-plus 生成代码的 vm文件 2&#xff09;添加依赖 mybatis-plus-generator 代码生成器的依赖 3&#xff09;执行工具方法生成代码 1、准备 mybatis-plus 生成代码的 vm文件 1&#xff09;找vm模板 去工程的 external Libraries 找到 mybati…

ES6基础6

Promise对象 Promise的含义 所谓Promise&#xff0c;简单说就是一个容器&#xff0c;里面保存着某个未来才会结束的事件&#xff08;通常是一个异步操作&#xff09;的结果。从语法上说&#xff0c;Promise是一个对象&#xff0c;从它可以获取异步操作的消息。Promise提供统一的…

深度学习笔记_8隐马尔可夫模型(HMM)

隐马尔可夫模型(Hidden Markov Model, HMM)是一种统计模型&#xff0c;在语音识别、行为识别、NLP、故障诊断等领域具有高效的性能。 HMM是关于时序的概率模型&#xff0c;描述一个含有未知参数的马尔可夫链所生成的不可观测的状态随机序列&#xff0c;再由各个状态生成观测随…

设计模式 -- 1:简单工厂模式

目录 代码记录代码部分 代码记录 设计模式的代码注意要运用到面向对象的思想 考虑到紧耦合和松耦合 把具体的操作类分开 不让其互相影响&#xff08;注意这点&#xff09; 下面是UML类图 代码部分 #include <iostream> #include <memory> // 引入智能指针的头文…

linux 模拟shell

&#x1f493;博主CSDN主页:麻辣韭菜-CSDN博客&#x1f493;   ⏩专栏分类&#xff1a;http://t.csdnimg.cn/G90eI⏪   &#x1f69a;代码仓库:Linux: Linux日常代码练习&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Linux知识   &#x1f51d;&#x1f5…

[linux] socket 非阻塞模式使用注意事项

在使用 socket 的一些 api 的时候&#xff0c;默认情况下都是阻塞模式。比如使用 tcp socket 时&#xff0c;客户端调用 connect() 创建连接&#xff0c;connect() 返回的时候要么是创建连接成功了&#xff0c;要么是出现了错误&#xff0c;反正 connect() 返回的时候结果是确定…