小迪安全笔记 第四十四天 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源码   蓝奏云优享版

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】A063—基于Spring Boot的农产品直卖平台的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…

mac port 安装redis 并设置为系统服务 自定义配置方法

mac系统中,port 包管理工具比brew的速度快N倍,今天就给大家分享一下在macos系统中如何使用 port安装 redis数据库并配置为服务自动启动和自定义redis.conf配置的方法。 1. 安装redis sudo port install redis 2. 启动redis服务 sudo port load redis …

在Docker中部署禅道,亲测可用

1、确保centos中已安装docker docker -v 2、启动docker systemctl start docker 3、可设置docker开机启动 systemctl enable docker.service 4、获取最新版禅道开源版镜像 docker pull idoop/zentao 5、运行镜像生成禅道容器【创建 /data/www /data/data 目录】 doc…

聚合支付系统官方个人免签系统三方支付系统稳定安全高并发

系统采用fastadmin框架独立全新开发,安全稳定,系统支持代理、商户、码商等业务逻辑。 针对最近一-些JD,TB等业务定制,子账号业务逻辑API 非常详细,方便内置对接! 注意:系统没有配置文档很使用教程,不清楚…

Flutter项目初始化android版

1、本机系统环境 window11flutter sdk 版本flutter_windows_3.24.5-stable.zip (下载地址:https://docs.flutter.dev/get-started/install/windows/mobile)android studio 版本 Android Studio Giraffe | 2022.3.1vscode 2、VSCODE 配置flutter 安装flutter插件 …

(四)lerobot开源项目的主从臂的远程操作(带相机)(操作记录)

目录 《项目简介》 一、​B站视频参考(推荐) 二、确定两个usb相机的端口号 三、远程操作(带相机) 四、遇到问题 《项目简介》 项目地址:GitHub - huggingface/lerobot: 🤗 LeRobot: Making AI for Ro…

【HarmonyOS开发】超详细的ArkTS入门

安装DevEco Studio和新建项目就不多说了,可以移步官网 就可以把他们拆成这几个部分了,如果看不懂可以暂时忽略下面冒号后面的内容 装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中Entry、Component和St…

ByConity ELT 小测

借着 ByConity 的邀测活动体验一下 bsp 能力,ByConity 也很贴心的提供了标准环境,下面开始体验。 测试环境 版本 配置 ByConity v1.0.1 集群规格 Worker:4 * 16core 64G Server:1 * 16core 64G TSO:1 * 4core 16…

【Android】从事件分发开始:原理解析如何解决滑动冲突

【Android】从事件分发开始:原理解析如何解决滑动冲突 文章目录 【Android】从事件分发开始:原理解析如何解决滑动冲突Activity层级结构浅析Activity的setContentView源码浅析AppCompatActivity的setContentView源码 触控三分显纷争,滑动冲突…

【C#】NET 9中LINQ的新特性-CountBy

前言 在 .NET 中,使用 LINQ 对元素进行分组并计算它们的出现次数时,需要通过两个步步骤。首先,使用 GroupBy方法根据特定键对元素进行分类。然后,再计算每个组元素包含个数。而随着 .NET 9 版本发布,引入了一些新特性。其中 LINQ 引入了一种新的方法 CountBy,本文一起来了…

【C++】深入理解 if-else 语句

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯if-else 语句基础概述1.1 if 语句1.2 else 语句注意事项: 1.3 单条语句和语句块的区别 💯else if 语句与嵌套 if2.1 else if 的本质2.2 else if 的优…

十七、监控与度量-Prometheus/Grafana/Actuator

文章目录 前言一、Spring Boot Actuator1. 简介2. 添加依赖2. 开启端点3. 暴露端点4. 总结 二、Prometheus1. 简介2. Prometheus客户端3. Prometheus服务端4. 总结 三、Grafana1. 简介2. Grafana安装3. Grafana配置 前言 系统监控‌ 在企业级的应用中,系统监控至关…

在c#控制台中使用Raylib-cs库,绘制控制小球和插入音频(附带c++中小球的控制代码)

下载网址 GitHub - chrisdill/raylib-cs: C# bindings for raylib, a simple and easy-to-use library to learn videogames programming 克隆库 克隆GitHub仓库-CSDN博客 1 .制作dll 点击 生成之后就会多出这些东西 2.在项目中添加dll 然后就导进来了 测试一下用例代码 …

400G智算网络助力知名自动驾驶企业算力训练提效

根据Gartner的最新趋势预测,自动驾驶技术正迅速发展,预计在未来几年内将带来显著的商业效益,特别是在决策智能和边缘人工智能领域。目前,一家领军企业正积极拥抱基于大模型的数字化转型之路,作为自动驾驶领域的佼佼者&…

STM32编码器接口及编码器测速模板代码

编码器是什么? 编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感 器,我们可以通过编码器测量到底位移或者速度信息。编码器从输出数据类型上 分,可以分为增量式编码器和绝对式编码器。 从编码器检测原理上来分&#xff0…

数组常见查找算法

文章目录 时间复杂度1. 顺序查找(Linear Search)2. 二分查找(Binary Search)3. 插值查找(Interpolation Search)4.分块查找5.哈希查找 时间复杂度 衡量算法执行时间随输入规模增长而增长的速度的一个概念。…

网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)

网际协议(Internet Protocol,IP),又称互联网协议。是OSI中的网络层通信协议,用于跨网络边界分组交换。它的路由功能实现了互联互通,并从本质上建立了互联网。网际协议IP是 TCP/IP 体系中两个最主要的协议之…

CountDownLatch、Semaphore和Cyclicbarrier

文章目录 前言一、CountDownLatch1、概念2、源码3、代码示例:4、应用场景: 二、Semaphore1.概念2.源码3.代码示例4.应用场景 三、Cyclicbarrier1、简介2、源码3、代码示例4、应用场景:5、CyclicBarrier对比CountDownLatch 总结 前言 countDo…

【开源免费】基于Vue和SpringBoot的课程答疑系统(附论文)

博主说明:本文项目编号 T 070 ,文末自助获取源码 \color{red}{T070,文末自助获取源码} T070,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

Flink 中双流 Join 的深度解析与实战

目录 一、Join 算子 一)语义与特性 二)通用用法 三)不同窗口类型表现 滚动窗口 Join 滑动窗口 Join 二、CoGroup 算子 一)功能特点 二)通用用法与连接类型实现 内连接(InnerJoin) 左…