SQL注入之布尔盲注

SQL注入之布尔盲注

一、布尔盲注原理

布尔盲注是一种基于布尔逻辑的SQL注入攻击技术,其核心原理是通过构造特定的SQL查询语句,利用应用程序对查询结果的不同响应(通常是真或假)来逐步推断数据库中的信息。由于这种攻击方式不会直接返回数据库的具体内容,而是通过观察应用程序的响应行为(如页面内容的变化、HTTP状态码、响应时间等)来间接获取数据,因此被称为"盲注"。

二、布尔盲注方法

通过构造特定的SQL语句,使 WHERE 子句的条件分别为 TrueFalse,从而观察应用程序的响应差异(例如页面内容的变化、HTTP状态码的不同或响应时间的延迟等),进而判断布尔条件的真假。例如:

  • 如果条件为真,页面显示正常。
  • 如果条件为假,页面显示错误或为空。

我们通常使用 ANDORWHERE 子句的条件分别为 TrueFalse,例如:

  • 原功能SQL:
sql 复制代码
SELECT id, name, age, sex FROM students WHERE name LIKE '%用户输入%'
  • 攻击者构造后的SQL:
sql 复制代码
SELECT id, name, age, sex FROM students WHERE name LIKE '%name%' AND 1=1 --%'
SELECT id, name, age, sex FROM students WHERE name LIKE '%name%' AND 1=2 --%'

我们可以将 1=1 替换为 database()='pikachu' 或其他布尔表达式,用来判断数据库的信息。

三、布尔盲注实例

在Pikachu平台上进行实践时,我们在输入框内分别输入SQL注入测试字符串:' and 1=1 #' and 1=2 #

  • ' and 1=1 #
  • ' and 1=2 #

当条件为 1=1True)时,应用程序能够正常返回查询结果;而当条件为 1=2False)时,页面则会提示"未找到相关信息"。这两种截然不同的响应状态为我们提供了判断依据。通过精心构造 WHERE 子句,并观察页面在不同条件下的显示状态,我们可以有效区分 WHERE 子句的真假,从而逐步推断出数据库中隐藏的信息。

我们再在输入框输入:' and SUBSTRING((SELECT DATABASE()), 1, 1) = 'p' #

解析

SUBSTRING(string, start, length) 函数:

  • string:要从中提取子字符串的原始字符串。
  • start:子字符串的起始位置。在SQL中,这个位置通常是从1开始的。如果start为负数,则表示从字符串的尾部开始计数。
  • length:要提取的字符数。这是一个可选参数。如果省略此参数,则将从起始位置提取到字符串的末尾。

页面能够正常返回查询结果,所以证明数据库名的第一个字符为 p。通过这种方法,我们可以逐步推断出数据库名称的每一位字符。至于后续如何获取数据库第二位及更多位字符的操作,原理相同,此处不再赘述。

相关推荐
独行soc17 小时前
2025年渗透测试面试题总结-腾讯[实习]安全研究员(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试
qq_243050791 天前
rtpmixsound:实现音频混音攻击!全参数详细教程!Kali Linux教程!
linux·web安全·网络安全·黑客·渗透测试·voip·kali linux
WHOAMI_老猫1 天前
渗透实战PortSwigger Labs AngularJS DOM XSS利用详解
前端·渗透测试·xss·angular.js
mooyuan天天2 天前
Webug4.0靶场通关笔记03- 第3关SQL注入之时间盲注(手注法+脚本法 两种方法)
sql注入·sql注入漏洞·时间盲注·webug靶场·webug4靶场
独行soc3 天前
2025年渗透测试面试题总结-匿名[校招]高级安全工程师(代码审计安全评估)(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试
独行soc3 天前
2025年渗透测试面试题总结-匿名[校招]安全研究员(SAST方向)(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试
落寞的魚丶7 天前
第三届宁波技能大赛网络安全赛项样题
网络安全·渗透测试·ctf·服务器配置·第三届宁波技能大赛
独行soc7 天前
2025年渗透测试面试题总结-匿名[校招]安全服务工程师(题目+回答)
linux·python·安全·web安全·面试·职场和发展·渗透测试
vortex59 天前
通配符滥用详解:Linux命令行的潜在风险
linux·运维·安全·网络安全·渗透测试
独行soc10 天前
2025年渗透测试面试题总结-匿名[实习]安全工程师(安全厂商)(题目+回答)
linux·安全·web安全·面试·职场和发展·渗透测试