小迪安全笔记 第四十四天 sql盲注 实战利用sql盲注 进行漏洞的利用
sql盲注的分类
什么是盲注 就是我们什么也不知道的情况下进行的注入 前边的注入 都是简单的注入 我们猜测 数据类型 之后 可以直接 union 去查 这种情况多用于 数据库增删查改中的 查
bool盲注也用于查 这个的情况的就是我们前边都试了 没有用 就需要盲注了 (下边的实战是白盒测试)
而 增删改 就要我们 进行 延迟注入和报错注入
1、bool盲注
布尔盲注 就是利用一些逻辑函数 来爆取数据库的一些信息
演示一下 最简单的布尔
条件 :bool盲注的条件是 1、数据库的内容进行回显
我们看一下 这类的源码
了解一下 使用方法
函数 length (str)= " " 他的作用就是显示字符串的长度
SELECT * from admin WHERE id=1 AND LENGTH(DATABASE())='4' ;
我们执行上边我的那个语句 直接出来的表是空的呀
我们写对字符串长度之后
把表输出了呀 那这个目的是什么呀 : 就是用来猜数据库名的长度的 ? 猜到了长度我们怎么知道他是什么名呀 ?
还需要一个函数 left 函数(从左到右逐个读取) 他的作用就是根据长度猜名字 用法 : left(database(),1)=a //这个表示猜测database的第一位是a(因为这个) 再继续猜就得
演示一下
输入正确的 字母之后 查询可以继续进行 要是错误的
就不会输出数据 注意一点就是查第二位的时候 要把我们第一位猜正确的写上
SQL中字符串截取函数(SUBSTRING)_sql substring-CSDN博客
bool盲注 如果数据不回显直接就 鸡鸡了 但是别急 下边有金牌辅助
上边还有这个 substr 截取函数 这个在第四十天的笔记
延时注入(if sleep)
原理就是 sleep这个函数会在我们执行语句的时候 延迟执行 这个要搭配 if判断语句
if判断 举个例子 if(1=1,2,3) 如果1=1正确就执行2 如果不成功就执行 3
这个多用来判断注入点 就是当我们的数据不会显的时候 我们可以这样注入 or if(1=1,sleep(5),0) 如果卡了 说明注入成功呀 那是不是结合 bool 盲注 就可以这样 : or if(left(database(),1)='a',sleep(3),0) 卡了就说明我们猜对了一位
演示一下
报错回显
updatexml(xml旧的内容,路径,新的内容) 下边这个大佬讲的很明白不懂可以看看他的文章
updatexml函数-报错注入原理学习-CSDN博客
updatexml 第一个和第三个参数是可以随便写的 第二个参数就是我们要注入 的内容
报错回显的利用条件就是 可以没有数据的回显 但是必须有报错函数的使用
利用 pikachu 演示:
' and updatexml(1,version(),1) and ' payload
利用报错获取信息:获取了版本号 这里有个进阶的语句 就是这样我们获取版本号如果 报错很长的话 就无法 分清 那该怎么办呀 我们之前不是学了一个 如果我们查找的数据有类似的就不会输出 我们使用 group_concat 进行输出 现在我们使用 concat 进行输出
详解MySQL中CONCAT()函数的用法(链接字符串)_mysqlconcat-CSDN博客
因为这个可以控制输出(拼接字符串) 所以我们就可以在结果前边 加上 易于分别的字符
' and updatexml(1,concat(0x7e,database()),1) and '
那我们当然可以进一步去爆表
逻辑布尔注入
这个其实和 延迟差不多 就是这个需要数据回显 就是我们输错了 他会提示我们的那种
演示:演示一下逻辑报错
我们直接使用 or的时候 就会报错 但是我们使用and 就会给我们执行数据库的操作 逻辑就是 or我们输入的kobe是存在的 但是 or 因为前边这个就是对的了 他就不会再去看后边的
但是 and逻辑 就是 前边的是对的 后边还是要进行的 为什么这个和前边的注入不一样啊 就是因为 这个是个 insert 类型的注入
利用逻辑判断 数据库的字母 substr 进行爆破注入 kobe' and substr(database(),1,1)='p' #
只要逻辑对 就会有数据的回显
说一声这个 substr(object,在那个位置截取字符,截取几个字符) 这个和上面的left的作用是类似的
爆破数据库表
涉及函数 exists函数 这个原意是预判断 语句 就是我们说 如果一个网站的访问量大于100 然后输出他的网站名 那后边这个就是有 exists进行执行 (为什么用它呀 就是他可以执行语句啊)
SQL EXISTS 运算符 | 菜鸟教程
kobe' and exists(select * from a) # 执行这个语句 演示一下爆破a
抓包 然后直接 发到 intruder 并对 aa 增加 payload 然后去添加字典 模式 选择狙击手就行 因为就一个 目标 这边好的字典大家可以直接去网上找我就随便写几个了
直接发到 repeater
那不还可以接着爆破列呀是吧
sqlmap 解决盲注问题
sqlmap 帮助我们进行sql盲注问题 : 你妹的手工注入真难啊 一遍一遍的猜 真难受 我们直接开启我们的 sqlmap之旅吧
1、先找注入点 把这个url复制一下
1、
2、 爆表 有注入点之后我们直接进行 爆表
3、 爆列名
上边这个命令错了哈 下边这个是
直接拿下 哎呀还是工具好用啊
实例 复现 delete 删除数据 漏洞
无回显 无报错的情况 那这个情况我们只能用什么 盲注啊 (延迟)
白盒测试 这个kkcms(源码在文末)
一个看片网站 那我们展示一下他的盲注吧(本地phpstudy 搭建网站我就不说了)
ctrl shift f 是全局搜索的意思 这边我就不演示了再
搜到这个之后我们进入这个ad_edit 网站(这个是在admin目录下的所以需要 后天管理员账号密码)为了直接复现 我直接说漏洞的位置
后台的这个登录删除 :
点删除抓包
payload :直接注入在ID那边 %20and%20if(substr(database(),1,1)='k',sleep(2),null)%20
%20是空格url编码()的意思 这个语句没毛病吧 我去发送了怎么没延迟啊
我们(猜猜可能是有过滤)输出
这个其实是 php自带的一个防注入(转义的魔术方法)的的 就是我们的注入 的 'xxx' 会被写成 '\xxx'\ 那这样还注入个毛啊 注入 ? 我们可以进行ascii码进行绕过
or%20if(ascii(substr(database(),1,1)=107,sleep(2),null) (这里有个细节就是 必须用or呀 不然就是逻辑问题 and 不会判断后边的东西) 进行一下 ascii的转换 为什么 进行这个呀 因为我们转换之后 ' ' 就没了 这个ascii码的转换 是常用的绕过 ' ' 的方法
总结
主要学了不同的盲注方法 bool 用于数据的回显 延迟因为它本身注意作用就是判断用的 所以数据回显和报错代码的存在对他没影响
黑盒测试:如果是黑盒我们需要可以找注入点直接工具 也可以分析
第二种就是 根据数据的回显和报错进行分别测试 从而选择 不同的注入方法
bool型(需要数据的回显)
报错型 (需要 error函数的出现)
延迟型 最全能的可能搭配 bool进行爆破
火狐渗透 蓝奏云优享版
kk源码 蓝奏云优享版
相关文章:
小迪安全笔记 第四十四天 sql盲注 实战利用sql盲注 进行漏洞的利用
sql盲注的分类 什么是盲注 就是我们什么也不知道的情况下进行的注入 前边的注入 都是简单的注入 我们猜测 数据类型 之后 可以直接 union 去查 这种情况多用于 数据库增删查改中的 查 bool盲注也用于查 这个的情况的就是我们前边都试了 没有用 就需要…...
AMEYA360:上海永铭电子全新高压牛角型铝电解电容IDC3系列,助力AI服务器电源高效运转
随着数据中心和云计算的高速发展,AI服务器的能效要求日益提高。如何在有限空间内实现更高的功率密度和稳定的电源管理,成为AI服务器电源设计的一大挑战。永铭推出全新高压牛角型铝电解电容IDC3系列,以大容量、小尺寸的创新特性,为…...
SpringBoot Web 开发请求参数
SpringBoot Web 开发请求参数 简单的 web 请求: @RestController public class HelloController {@RequestMapping("sayHello")public String sayHello(){System.out.println("Hello World");return "hello world";} }获取请求参数 简单参数…...
力扣92.反转链表Ⅱ
题目描述 题目链接92. 反转链表 II 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1: 输入:head [1,2,3,4,5], left …...
网络安全、Web安全、渗透测试之笔经面经总结(一)
本篇文章总结涉及以下几个方面: 一:对称加密非对称加密? 对称加密:加解密用同一密钥,密钥维护复杂n(n-1)/2,不适合互联网传输密钥,加解密效率高。应用于加密数据。 非…...
11 设计模式之代理模式(送资料案例)
一、什么是代理模式? 在现实生活中,我们常常遇到这样的场景:由于某些原因,我们可能无法亲自完成某个任务,便会委托他人代为执行。在设计模式中,代理模式 就是用来解决这种“委托”问题的࿰…...
matlab2024a安装
1.开始安装 2.点击安装 3.选择安装密钥 4.接受条款 5.安装密钥 21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-60034-42697-39512-63953 6 7.选择许可证文件 8.找许可证文件 9.选…...
齐护机器人ModbusRTU RS485转TTL通信模块与ESP32 Arduino通信可Mixly的图形化编程Scratch图形化编程
齐护机器人ModbusRTU RS485-TTL通信模块 一、概念理解 Modbus协议是一种由Modicon公司(现为施耐德电气Schneider Electric)于1979年发表的网络通信协议,旨在实现可编辑逻辑控制器(PLC)之间的通信。 1.1 什么是Mod…...
JDK、JRE、JVM的区别
JDK(Java Development Kit)、JRE(Java Runtime Environment)和JVM(Java Virtual Machine)是Java技术栈中的三个核心组件,它们各自有不同的功能和用途: 1. JDK(Java Deve…...
linux基础2
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
vue 项目实现阻止浏览器记住密码
在各个浏览器中,登录输入密码一般都会弹出是否记住密码的功能,如果记住之后,会在各个密码框自动填充记住的密码,这无疑是一种不安全的操作,所以要实现禁用阻止浏览器记住密码的行为 查阅资料,也得到很多…...
【23种设计模式】工厂模式:理论剖析与Java实践
文章目录 工厂模式:理论、Java 实现与实践应用一、工厂模式概述二、简单工厂模式(一)理论介绍(二)代码实现(三)关键步骤(四)流程图 三、工厂方法模式(一&…...
(补充)JSON在Java后端的应用
JSON在Java后端的应用 本篇介绍 本篇文档不涉及到写一个JSON字符串,只是介绍如何在后端实现JSON字符串和Java对象的相互转换 Java对象转换为JSON字符串 在Java中,可以使用一个第三方工具包Jackson将Java对象转换为JSON对象,假设现在有一个…...
使用 Apache Commons IO 实现文件读写
在 Java 编程中,文件读写是常见的操作。虽然 Java 标准库提供了基本的文件 I/O 功能,但使用 Apache Commons IO 库可以进一步简化这些操作,提高开发效率。Apache Commons IO 是一个强大的工具库,提供了许多实用的类和方法…...
AWS ECS Task 添加 Prometheus 监控采集配置详细指南
以下是一篇完整的博文,介绍如何在 AWS ECS 环境中实现 JVM 监控。 AWS ECS 环境下的 JVM 监控实践 概述 在 AWS ECS (Elastic Container Service) 环境中监控 Java 应用性能是一项重要任务。本文将详细介绍如何使用 AWS Distro for OpenTelemetry (ADOT) 结合 Spring Boot …...
Vue+vite 组件开发的环境准备
一.nodejs安装 进入Node.js 官网(Node.js — Run JavaScript Everywhere),点击下载。 双击打开,进行安装 双击打开后,点击 next(下一步),后面也是一直点击 next 无其他设置,直到 …...
STM32 进阶 定时器:1系统定时器 系统中断案例 LED闪烁
定时器: 功能从高到低: TIM1和TIM8 高级控制定时器:输出能力更强,刹车控制、死区时间。 TIMx 通用定时器:可以输出PWM方波 TIM6和TIM7 基本定时器:只能计时 系统定时器 系统定时器(SysTic…...
基于微信小程序的教学质量评价系统
私信我获取源码和万字论文,制作不易,感谢点赞支持。 基于微信小程序的教学质量评价系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于微信小程序的教学质量评价系统的开发全过…...
Qt Qtablewidget 标题 QHeaderView 增加可选框 QcheckBox
创建自定义QHeaderView #pragma once#include <QObject> #include <QHeaderView> #include <QPainter> #include <QMouseEvent>class SSHeaderView : public QHeaderView {Q_OBJECTprivate:bool isChecked;int m_checkColIdx; public:SSHeaderView(i…...
在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案
在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案 背景概述解决方案脚本实现脚本说明使用指南注意事项在CentOS操作系统环境中,若需并发上传特定目录下的.wav文件至HTTP服务器,而系统未安装GNU parallel工具,我们可通过其他方法实现此需求。本文将介绍一种利用Sh…...
实战ansible-playbook(四) -文件操作重定向/追加
原始命令: ----------阶段1--------------- apt-get update -y apt install nano vim iputils-ping net-tools dialog gcc apt-utils make -y systemctl stop unattended-upgradessystemctl disable unattended-upgradesecho APT::Periodic::Update-Package-Lists "1&qu…...
嵌入式 C 编程必备(7):const 关键字 —— 打造稳定的常量空间
目录 一、const关键字的基本含义与用法 1.1. 修饰基本数据类型 1.2. 修饰指针 1.3. 修饰数组 1.4. 修饰结构体 二、const关键字在嵌入式编程中的优势 2.1. 提升代码可读性 2.2. 增强代码安全性 2.3. 优化内存使用 2.4. 促进模块化设计 2.5. 支持静态分析和测试 三、…...
电脑显示没信号显示屏不亮怎么办?电脑没信号解决方法
电脑没信号显示屏不亮这种故障的原因可能有多种,例如显示器的供电、连接、设置等问题,或者电脑的显卡、内存、硬盘、主板等硬件问题。所以我们想要解决这个问题,也是需要多方面排除找到具体原因然后进行修复。下面将为大家介绍一些常见的电脑…...
C++零基础入门:运算符与表达式详解 —— 树莓派Pico编程应用
C语言作为信息学奥赛的指定语言,广泛应用于嵌入式开发、系统编程、游戏开发等领域。对于初学者而言,掌握基本的运算符和表达式是进行编程的基础,而这些基础知识能够帮助你解决各种实际问题。本文将带你深入理解C中的运算符与表达式࿰…...
mvc命令
命令 mvc MVC(Model-View-Controller)是一种软件架构模式,用于组织和管理应用程序的代码mvc重要的三部分 (1)模型(Model):负责存储系统的中心数据,提供访问数据的函数,封装了应用程序的功能内核。 (2)视图&…...
Kafka-创建topic源码
一、命令创建topic kafka-topics --create --topic quickstart-events --bootstrap-server cdh1:9092 --partitions 2 --replication-factor 2 二、kafka-topics脚本 exec $(dirname $0)/kafka-run-class.sh org.apache.kafka.tools.TopicCommand "$" 脚本中指定了…...
如何开展单元测试
1、是什么 单元测试(Unit Testing)又称为模块测试,是针对程序模块来进行正确性检验的测试工作。 程序模块是软件设计的最小单位,程序单元是应用的最小可测试部件 • 在面向过程编程中,一个单元就是单个程序、函数、过…...
网络练级宝典-> UDP传输层协议
目录 传输层 端口号 端口号和进程的关系 UDP协议 UDP协议格式 UDP数据封装: UDP数据分用: 面向数据报 UDP的缓冲区 UDP的缺点 基于UDP的应用层协议 传输层 端口号 我们知道端口号对应的其实就是一个进程的pid,在操作系统中二者的…...
【Elasticsearch】07-ES聚合
1. 桶 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组,例如按照品牌值分组、按照国家分组Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组…...
Unity 画线(UILineRenderer)
实现 以鼠标点击点作为起点创建UILineRenderer 并记录起点。 GameObject go new GameObject(); go.transform.parent transPaint; go.transform.localPosition Vector3.zero; line go.AddComponent<UILineRenderer>(); line.LineWidth widthLine; line.color col…...
【Linux测试题】
1. 选择题 题目: 如果想将电脑中Windows C盘(hd1)安装在Linux文件系统的/winsys目录下,请问正确的命令是()。 选项: A. root104.123.123.123:~# mount dev/hd1 /winsys B. root104.123.123.12…...
什么是快速傅里叶变换?
一、FFT概念 快速傅里叶变换(Fast Fourier Transform,FFT)是一种高效计算离散傅里叶变换(Discrete Fourier Transform,简称DFT)及其逆变换的算法。DFT和FFT都是音频处理、图像分析、振动分析、无线通信等许…...
android-studio开发第一个项目,并在设备上调试
恭喜你成功安装并配置好了 Android Studio!下面是开发你的第一个 Android 项目并在设备上调试的详细步骤: 1. 启动 Android Studio 首先,启动 Android Studio。你可以通过以下几种方式启动: 使用桌面快捷方式(如果已…...
深入浅出:php-学习入门全攻略
文章目录 1. 为什么选择 PHP?2. 安装 PHP 环境2.1 Windows 系统安装步骤 1:下载 PHP步骤 2:解压并配置步骤 3:配置环境变量步骤 4:验证安装 2.2 Mac 系统安装步骤 1:使用 Homebrew 安装步骤 2:验…...
Qml之基本控件
一.Qml常用控件 1.Text(显示普通文本和富文本) 1.1显示普通文本: Window { visible: true width: 320 height: 240 title: qsTr("Hello World") Text { text: "Hello World!" font.family: "Helvetica" font.pointSize: 24 color:…...
redis机制详解
RDB 快照机制 在默认情况下,Redis 会将内存数据库的快照存储在名为 “dump.rdb” 的二进制文件中。同时,你可以通过相关设置,让 Redis 在满足特定条件时自动保存数据集。例如,设定 “save 60 1000”,意味着当在 60 秒内…...
【知识科普】Linux系统下用户权限体系
文章目录 概述一、用户类型二、用户权限的组成三、权限的表示方法四、权限的修改方法五、特殊权限六、权限掩码(umask) 密码相关一、修改用户密码二、删除用户密码三、设置用户密码有效期四、查询用户密码信息五、密码策略配置 SSH远程访问1. 检查SSH服务…...
【数据结构】堆
目录 一、堆 二、堆的模拟实现 1.结构体 2.push 3.pop和top 三.实现堆排序 1.成堆算法 2.堆排序 heap模拟实现源码_gitee 一、堆 分为大堆和小堆 大堆是每个父节点都大于子节点,小堆则相反是每个父节点都小于子节点 底层抽象结构是完全二叉树࿰…...
6.824/6.5840 Lab 1: MapReduce
宁静的夏天 天空中繁星点点 心里头有些思念 思念着你的脸 ——宁夏 完整代码见: https://github.com/SnowLegend-star/6.824 由于这个lab整体难度实在不小,故考虑再三还是决定留下代码仅供参考 6.824的强度早有耳闻,我终于也是到了挑战这座高…...
Day5:生信新手笔记 — R语言基本语法
一、数据类型 (重点只有两个,剩下的不看) 1.1 向量(vector) 矩阵(Matrix) 数组(Array) 1.2 数据框(Data frame) x<- c(1,2,3) #常用的向…...
lua download
https://www.lua.org/ https://www.lua.org/versions.html#5.4...
安装更新upgrade导致ubuntu崩溃
安装更新导致ubuntu崩溃 前言uuid编不过,导致的崩溃 记录一些ubuntu崩溃的过程。 目前只有一个,以后遇到都放在这里,以提醒自己。 前言 如果从10000年看现在的linux,不是说不完美,而是糟透了。 linux的版本号…...
软件测试最新项目合集【商城、外卖、银行、金融等等.......】
项目一:ShopNC商城 项目概况: ShopNC商城是一个电子商务B2C电商平台系统,功能强大,安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城,系统PC后台是基于ThinkPHP MVC构架开发的跨…...
【学习总结|DAY09】Java 流程控制与数据操作练习一:录入三位数并筛选符合条件的数字
一、主要代码: import java.util.Scanner;public class demo07 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.print("请输入一个大于100的三位数:");int number scanner.nextInt();if (nu…...
“放弃Redis Desktop Manager使用Redis Insight”:日常使用教程(Redis可视化工具)
文章目录 更新Redis Insight连接页面基础解释自动更新key汉化暂时没有找到方法, Redis Desktop Manager在连接上右键在数据库上右键在key上右键1、添加连接2、key过期时间 参考文章 更新 (TωT)ノ~~~ βyё βyё~ 现在在维护另一…...
使用lumerical脚本语言创建弯曲波导并进行数据分析(纯代码实现)
本文使用lumerical脚本语言创建弯曲波导、设置有限差分时域(FDTD)模拟、改变波导弯曲半径计算损耗、绘制图像展示电场强度分布情况及对具有不同弯曲半径的波导进行一系列模拟和分析操作(代码均有注释讲解)。 一、创建弯曲波导 1.1 基本结构讲解 (1)包层(Clad) 在波导结…...
AC+AP漫游实验
实验拓扑 实验要求 1.AP1服务vlan10,AP2服务vlan20,实现三层漫游 2.AP1与AP2为不同AP组,直接转发 实验步骤 1.配置VLAN放行相关流量 交换机与AP接口为trunk口并修改PVID为30 2.配置相关业务使得ap上线 3.配置vap上线,AP可用…...
七:仪表盘安装-controller node
一:工具、环境准备-controller node 二:OpenStack环境准备-controller node 三:安装服务-controller node 四:工具、环境准备-compute node 五:OpenStack环境准备-compute node 六:安装服务-compute node 七…...
pandas习题 067:小于 60 的部分列修改为 60
(编码题)修改以下名为 df 的 DataFrame 的值,将 Q1、Q2、Q3、Q4 列中小于 60 的分数修改为 60。 import pandas as pd# 示例数据 data = {name: [Alice, Bob, Charlie],...
Flutter 版本管理工具FVM
FVM是一款非常好用的Flutter版本管理工具。FVM官网: 下面是使用 FVM(Flutter Version Manager)管理 Flutter 版本的整个流程,包括安装、配置环境变量以及基本的使用步骤。 1. 安装 FVM FVM 可以通过多种方式安装,下…...