小迪安全笔记 第四十四天 sql盲注 实战利用sql盲注 进行漏洞的利用

news2025/1/23 5:48:46

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源码   蓝奏云优享版

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

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

相关文章

FFmpeg:强大的音视频处理工具指南

FFmpeg:强大的音视频处理工具指南 1. FFmpeg简介2. 核心特性2.1 基础功能2.2 支持的格式和编解码器 3. 主要组件3.1 命令行工具3.2 开发库 4. 最新发展5. 安装指南5.1 Windows系统安装5.1.1 直接下载可执行文件5.1.2 使用包管理器安装 5.2 Linux系统安装5.2.1 Ubunt…

Cursor+Devbox AI开发快速入门

1. 前言 今天无意间了解到 Cursor 和 Devbox 两大开发神器,初步尝试以后发现确实能够大幅度提升开发效率,特此想要整理成博客以供大家快速入门. 简单理解 Cursor 就是一款结合AI大模型的代码编辑器,你可以将自己的思路告诉AI,剩下的目录结构的搭建以及项目代码的实现均由AI帮…

MySQL——操作

一.库的操作 1.基本操作 创建数据库 create database 数据库名称; 查看数据库 show databases; 删除数据库 drop database 数据库名称; 执行删除之后的结果: 数据库内部看不到对应的数据库 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删…

【Python系列】使用 `psycopg2` 连接 PostgreSQL 数据库

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

MacOS安装sshfs挂载远程电脑硬盘到本地

文章目录 sshfs简介sshfs安装下载安装macFUSE安装sshfs sshfs使用注意事项 sshfs简介 SSHFS(SSH Filesystem)是一种基于FUSE(用户空间文件系统)的文件系统,它允许你通过SSH协议挂载远程文件系统。使用SSHFS&#xff0…

数据结构---链表(2)---双向链表

链表(1)中讲过了在OJ题中出现很多并且能作为一些复杂数据结构子结构的不带头单向不循环链表,下面讲解应用很广很实用的带头双向循环链表。 三、双向链表---DoublyLinkedList 演示带头双向循环链表(实用)。 带头--->不需要对空链表继续单独判断;循环…

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:智行无忧停车场管理系统(前后端源码 + 数据库 sql 脚本)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 项目介绍 1.1 项目功能 2.0 用户登录功能 3.0 首页界面 4.0 车辆信息管理功能 5.0 停车位管理功能 6.0 入场登记管理功能 7.0 预约管理功能 8.0 收费规则功能 9.0…

【text2sql】低资源场景下Text2SQL方法

SFT使模型能够遵循输入指令并根据预定义模板进行思考和响应。如上图,、 和 是用于通知模型在推理过程中响应角色的角色标签。 后面的内容表示模型需要遵循的指令,而 后面的内容传达了当前用户对模型的需求。 后面的内容代表模型的预期输出,也…

MongoDB安装|注意事项

《疯狂Spring Boot讲义》是2021年电子工业出版社出版的图书,作者是李刚 《疯狂Spring Boot终极讲义》不是一本介绍类似于PathVariable、MatrixVariable、RequestBody、ResponseBody这些基础注解的图书,它是真正讲解Spring Boot的图书。Spring Boot的核心…

基于 LLamafactory 的异步API高效调用实现与速度对比

文章目录 背景摘要简介代码实现运行结果速度对比异步调用速度同步调用速度 背景 原先经常调用各家的闭源大模型的API,如果使用同步的方式调用,速度会很慢。为了加快 API 的调用速度,决定使用异步调用 API 的方式。 摘要 通过异步方式调用大…

Linux的用户和权限【Linux操作系统】

文章目录 Linux的用户切换用户普通用户暂时以root用户的权限执行指令如何把一个普通用户加入白名单? 新建用户 Linux权限权限的组成更改权限文件/目录权限的表示方法: umask粘滞位添加粘滞位的方法 Linux的用户 Linux下有两种⽤⼾:超级用户&#xff08…

如何使用apache部署若依前后端分离项目

本章教程介绍,如何在apache上部署若依前后端分离项目 一、教程说明 本章教程,不介绍如何启动后端以及安装数据库等步骤,着重介绍apache的反向代理如何配置。 参考此教程,默认你已经完成了若依后端服务的启动步骤。 前端打包命令使用以下命令进行打包之后会生成一个dist目录…

优先算法 —— 滑动窗口系列 - 无重复字符的最长子串

目录 前言 1. 无重复字符的最长子串 2. 题目解析 3. 算法原理 解法1:暴力枚举 哈希表(判断字符是否有重复出现) 解法2:滑动窗口 4. 代码 前言 当我们发现暴力解法两个指针都不回退,都是向同一个方向移动的时候我…

2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现: 人的大脑结构非常复杂,内部交织密布着神经和血管,所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术,通常需要…

Jest timers

引入 我们自己先写一个定时器,在这里,这个测试是一定会通过的,因为他一旦传入callback,就算是完成了,而不是在意你的运行结果了,而且你的定时器还有几秒呢 export const timer (fn) > {setTimeout(() > {fn()}, 3000) }//test import {timer} from "./timer"…

数据链路层(四)---PPP协议的工作状态

1 PPP链路的初始化 通过前面几章的学习,我们学了了PPP协议帧的格式以及组成,那么对于使用PPP协议的链路是怎么初始化的呢? 当用户拨号上网接入到ISP后,就建立起了一条个人用户到ISP的物理链路。这时,用户向ISP发送一…

UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets

插件名称:UPIrregularWidgets 插件包含以下功能 你可以点击任何图片,而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能,复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…

Latex转word(docx)或者说PDF转word 一个相对靠谱的方式

0. 前言 投文章过程中总会有各种各样的要求,其中提供word格式的手稿往往是令我头疼的一件事。尤其在多公式的文章中,其中公式转换是一个头疼的地方,还有很多图表,格式等等,想想就让人头疼欲裂。实践中摸索出一条相对靠…

Leetcode打卡:棋盘上有效移动组合的数目

执行结果:通过 题目:2056 棋盘上有效移动组合的数目 有一个 8 x 8 的棋盘,它包含 n 个棋子(棋子包括车,后和象三种)。给你一个长度为 n 的字符串数组 pieces ,其中 pieces[i] 表示第 i 个棋子的…

Day5:生信新手笔记 — R语言基本语法

一、数据类型 &#xff08;重点只有两个&#xff0c;剩下的不看&#xff09; 1.1 向量&#xff08;vector&#xff09; 矩阵&#xff08;Matrix&#xff09; 数组&#xff08;Array&#xff09; 1.2 数据框&#xff08;Data frame&#xff09; x<- c(1,2,3) #常用的向…