SQL注入-盲注(布尔盲注与时间盲注)

这篇具有很好参考价值的文章主要介绍了SQL注入-盲注(布尔盲注与时间盲注)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、什么是盲注

二、盲注的分类

三、利用盲注的前提条件

四、盲注的优缺点

五、基于布尔类型的盲注

1.什么情况下使用布尔类型的盲注

 2.使用布尔类型盲注的操作步骤:

3.布尔类型盲注的操作过程(以获取当前数据库为例)

 4.使用其他函数进行布尔类型的盲注(演示获取当前数据库)

4.1  left()函数:

4.2 mid()函数:

4.3 正则表达式 regexp : 

4.4 like函数:

4.5 if语句 :

 六、基于时间类型的盲注

1.何时利用时间类型的盲注:

2.时间类型盲注的注意事项

3.基于时间盲注的演示 


一、什么是盲注

盲注就是在sql注入过程中,sql语句执行select之后,可能由于网站代码的限制或者apache等解析器配置了不回显数据,造成在select数据之后不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个判断的过程称之为盲注。

通俗的讲就是在前端页面没有显示位,不能返回sql语句执行错误的信息,输入正确和错误返回的信息都是一致的,这时候我们就需要使用页面的正常与不正常显示来进行sql注入。

二、盲注的分类

  • 基于布尔类型的盲注
  • 基于时间类型的盲注

三、利用盲注的前提条件

首先页面没有显示位(如果有显示位可以选择union联合查询),并且没有返回sql语句的执行错误信息。

四、盲注的优缺点

优点:不需要显示位和出错信息。

缺点:速度慢,耗费时间长(可以用到bp等工具)。

五、基于布尔类型的盲注

1.什么情况下使用布尔类型的盲注

  • 没有返回SQL执行的错误信息
  • 错误与正确的输入,返回的结果只有两种

 错误页面:布尔盲注,SQL注入,sql,数据库,web安全,网络安全

正确页面:

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 2.使用布尔类型盲注的操作步骤:

  1. 构造目标查询语句
  2. 选择拼接方式
  3. 构造判断表达式
  4. 提取数据长度
  5. 提取数据内容

3.布尔类型盲注的操作过程(以获取当前数据库为例)

在SQL注入过程中,由于没有显示位于报错信息,所以会用到截取字符串函数进行数据的提取,所往往需要一个一个字符去猜。

第一步:获取当前数据库的长度

payload为:lili' and length((select database()))=7--+

查看返回结果(需要自己试,也可以是用bp工具,也可以使用“>”,“<”符号):

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

当输入其他数字时,查看返回结果:

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 第二步:获取当前数据库库名(获取前三个字符,数据量太大,需要用到bp工具)

开启burp suite

payload为:lili' and substr((select database()),1,1)='a'--+

substr为截取字符串函数,第一个参数为我们的SQL语句,第二个参数1表示从第一个字符开始,第三个参数表示截取一个字符。并且该字符为a。

通过bp工具暴力破解

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 布尔盲注,SQL注入,sql,数据库,web安全,网络安全

布尔盲注,SQL注入,sql,数据库,web安全,网络安全 

 通过上述方法即可获得当前数据库库名。

3.2获取所有数据库库名

第一步,获取字符长度

payload为:name=lili' and  length((select group_concat(schema_name)from information_schema.schemata))=1--+

开启bp

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

布尔盲注,SQL注入,sql,数据库,web安全,网络安全 

布尔盲注,SQL注入,sql,数据库,web安全,网络安全 

 第二步,获取所有数据库库名

这边可以选择狙击手模式(sniper)也可以选择集束炸弹模式(cluster bomb),狙击手模式需要手动修改参数,集束炸弹模式对电脑配置要求比较高,此处演示集束炸弹模式

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 布尔盲注,SQL注入,sql,数据库,web安全,网络安全

布尔盲注,SQL注入,sql,数据库,web安全,网络安全 

 文章来源地址https://www.toymoban.com/news/detail-722641.html

 根据破解的结果可以知道相应的答案布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 4.使用其他函数进行布尔类型的盲注(演示获取当前数据库)

4.1  left()函数:

语法:left (string,n) string为要截取的字符串,n为长度。

payload:name=lili' and left((select database()),1)='p'--+

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

4.2 mid()函数:

语法:mid(string, start[, length]) column_name为要提取字符的字段,start为开始截取位置(起始值是1),length为截取的长度(可选,默认余下所有字符)

char(x)函数:将x的值转为所对应的字符

payload:name=lili' and mid((select database()),1,1)=char(112)--+

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

4.3 正则表达式 regexp : 

正则表达式语法: regexp ^[a-z] 表示字符串中第一个字符是在 a-z范围内。regexp ^a 表示字符串第一个字符是a。regexp ^ab 表示字符串前两个字符是ab。

payload:name=lili' and  (select database()) regexp '^p'--+ 

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

4.4 like函数:

语法:Like 'a%'表示字符串第一个字符是a。

           Like 'ab%'表示字符串前两个字符是ab。

%表示为任意值

payload:name=lili' and  (select database()) like 'p%'--+

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

4.5 if语句 :

语法:if(判断条件,正确返回的值,错误返回的值)

注意数据库中的if与后端if不一样

payload:name=lili' and 1= if(((select database())like 'p%'),1,0)--+ 

表示如果if语句中的第一个参数为真,则输出第一个值1,不为真输出第二个值0;

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 六、基于时间类型的盲注

1.何时利用时间类型的盲注:

页面上没有显示位和SQL语句执行的错误信息,正确执行和错误执行的返回界面一样,此时需要使用时间类型的盲注。

时间型盲注与布尔型盲注的语句构造过程类似,通常在布尔型盲注表达式的基础上使用IF语句加入延时语句来构造,由于时间型盲注耗时较大,通常利用脚本工具来执行,在手工利用的过程中较少使用。

2.时间类型盲注的注意事项

  1. 通常使用sleep()等专用的延时函数来进行时间盲注,特殊情况下也可以使用某些耗时较高的操作代替这些函数。
  2. 为了提高效率,通常在表达式判断为真时执行延时语句。
  3. 时间盲注语句拼接时无特殊要求,保证语法正确即可。

3.基于时间盲注的演示 

1.通过时间线判断sql语句是否执行

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 2.通过添加sleep函数判断:

payload:name=lili'and sleep(5)--+    执行成功时间线为5s

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 payload:name=lili''and sleep(5)--+    执行失败时间线为32ms

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

3.通过时间盲注获取当前数据库

第一步:

首先需要获取数据库长度

payload:name=lili'and if(length((select database()))=7,sleep(5),0)--+

根据时间线判断可知数据库的字符长度为7

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 第二步:

获取当前数据库的库名

payload:name=lili'and if(substr((select database()),1,1)='p',sleep(5),0)--+

根据时间线判断当前数据库的库名的第一个符为‘p’

布尔盲注,SQL注入,sql,数据库,web安全,网络安全

 也可以使用上边布尔类型盲注的其他函数执行。

 

 

 

 

到了这里,关于SQL注入-盲注(布尔盲注与时间盲注)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL注入-时间盲注

    当测试一个注入点时,我们使用多种方式测试,页面都显示正常,这就很难判断改点是否存在注入,可能会造成误断,这时候我们可以采用时间盲注的方法,来判断是否存在注入点以及猜解数据库信息。 时间盲注就是通过if 语句构造判断条件,是sleep函数来让数据库延迟查询

    2024年02月12日
    浏览(50)
  • SQL注入原理-时间盲注

            小伙伴们大家好!本期为大家带来的是SQL注入原理之时间盲注。 目录 使用环境 常见函数与语句 sleep()函数 if语句 substr()函数 ord()函数  length()函数  实战演示 1、判断是否存在注入点 2、使用时间盲注爆出数据 1、爆出当前数据库名的长度 2、爆出数据库名长度 3、爆

    2023年04月10日
    浏览(52)
  • 安全中级11:sql注入+联合、报错、时间盲注+sqlmap使用

    目录 一、sql注入原理  二、联合SQL注入的方法 1.总体的思路 (1)先进行闭合,进行报错 (2)进行逃逸 (3)外带数据 (4)获取库名 表名 列名 数据 (5)获取当前数据库中的数据 2.SQL注入测试 (1)先进行单双引号闭合,让页面出现页面报错 (2)然后看有几列,有两种方

    2024年02月13日
    浏览(33)
  • DVWA——SQL注入+盲注

    目的:执行特定sql语句,获得其他相关内容。 攻击方式:动态构造SQL语句 影响:数据库的脱裤、修改、甚至影响到操作系统。 漏洞原理:直接使用原始sql语句,没有代码审查 漏洞利用: 步骤1:判断是否存在注入漏洞: 步骤2:判断当前表字段个数?:通过order by 排序字段

    2024年02月07日
    浏览(48)
  • SQL注入实战:盲注

    1、当攻击者利用SQL注入漏洞进行攻击时,有时候web应用程序会显示,后端数据库执行SQL查询返回的错误信息,这些信息能帮助进行SQL注入,但更多时候,数据库没有输出数据web页面,这是攻击者会查询一系列的true或false问题,或者基于时间判断的问题,强制从数据库获取数据

    2024年01月24日
    浏览(52)
  • DVWA之sql注入——盲注

    1.1 布尔盲注 布尔很明显的Ture跟Fales,也就说它只会根据你的注入信息返回Ture跟Fales,也就没有了之前的报错 信息。 1.判断是否存在注入,注入的类型 不管输入框输入为何内容,页面上只会返回以下2种情形的提示: 满足查询条件则返回\\\"User ID exists in the database.\\\",不满足查询

    2024年02月05日
    浏览(53)
  • DVWA 之 SQL注入(非盲注)

    步骤: 1.判断是否存在注入,注入是字符型还是数字型 2.猜解SQL查询语句中的字段数 3.确定显示的字段顺序 4.获取当前数据库 5.获取数据库中的表 6.获取表中的字段名 7.下载数据 输入1,查询成功: 输入1’and ‘1’ =’2,查询失败,返回结果为空: 输入1’or ‘1 ’=’1,查询

    2024年02月04日
    浏览(42)
  • 延时盲注技术:SQL 注入漏洞检测入门指南

    部分数据来源: ChatGPT  环境准备 引言         在网络安全领域中,SQL 注入漏洞一直是常见的安全隐患之一。它可以利用应用程序对用户输入的不恰当处理,导致攻击者能够执行恶意的 SQL 查询语句,进而获取、修改或删除数据库中的数据。为了帮助初学者更好地理解和

    2024年02月10日
    浏览(47)
  • 帝国cms高危SQL注入漏洞(盲注)系统自带RepPIntvar过滤函数使用方法

    帝国cms源码开发的时候很多时候要用到$_GET过来的参数,在处理的时候如果不严谨容易被发现利用,给系统整体安全带来影响。 帝国cms系统本身有自带了过滤函数RepPIntvar,传递过来的字段加上过滤可以给安全加分。 错误的写法: $title = $_GET[\\\'id\\\'] ; 未经过滤存在SQL注入漏洞风

    2024年02月04日
    浏览(59)
  • 【网络安全---sql注入(2)】如何通过SQL注入getshell?如何通过SQL注入读取文件或者数据库数据?一篇文章告诉你过程和原理。

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 本篇博客主要是通过piakchu靶场来讲解如何通过SQL注入漏洞来写入文件,读取文件。通过SQL输入来注入木马来getshell等,讲解了比较详细的过程; 如果想要学习

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包