【超详细】POST注入(Less-11)、Cookie注入(Less-20)、二次注入(Less-24)、宽字节注入(Less-32)

2023-11-14

本博文仅用于信息安全防御教学,请遵守中华人民共和国网络安全法!!

POST注入

需要知道的一些知识:
所谓POST注入指的是我们往常传递参数的时候,在地址栏都可以看到
我们输入参数的具体值,但POST方式提交的特点就是,所提交的数据
不会在地址栏上显示。

这就需要我们对传递过来的数据进行抓包,通过拦截从而来修改我们
提交的数据,起到POST注入的效果。

0x01
首先我们根据题意,输入一个用户名和密码,系统显示你的用户名和你的密码(蓝字,可能看不请), 并且提示你成功登录
在这里插入图片描述
0x02
然后我们看到它的SQL语句后面的where条件存在单引号,然后我们联想到单引号注入,所以我们试试对username进行单引号注入,并且注释掉后面的语句,我们在登陆界面输入以下代码,我们发现红框里面出现了不属于我们登录的用户,而且还显示出了它的密码

www' or 1=1 -- (最后面有一个空格)

在这里插入图片描述
0x03
其实到这里我们就算是注入完成了,其实POST注入和GET注入就是,地址栏没有我们所提交的参数,这就需要我们抓包来查看它的参数,比如说:我提交username为admin,passwd为admin,我们来抓包看一下它携带的参数。所以我们也可以在burp中进行修改参数,和在输入username的登录界面的道理是一样的。
在这里插入图片描述
0x04
我们也可以通过burp修改参数,使其联合查询数据库的名称,我们看到红框中的Your Password中出现了数据库的名称security

asd' union select 1,database() --

在这里插入图片描述

Cookie注入

所谓Cookie就是一种储存在用户本地终端上的数据,通俗一点说就是,假如你登录了淘宝,那么当你关掉网页以后,再次打开淘宝,你会发现网页并没有让你登录,这就是因为它识别它给你的Cookie,认证了你的身份,所以你就不用再次输入用户名和密码。

所以本关,其实就是让你通过抓包来修改它的Cookie从而达到注入的目地

0x01
首先我们根据题意注册一个用户名叫admin密码为admin
在这里插入图片描述
然后放包看看它的登录界面
在这里插入图片描述
然后我们抓包刷新页面看看,这个页面所携带的Cookie是什么
在这里插入图片描述
我们发现它所携带的Cookie为admin

0x02

我们想到,可以从cookie下手来进行注入,因为不像POST注入那一关,这关在用户名直接进行注入是不行的,因为系统其实是识别的你的Cookie,来进行登录的,所以我们通过burp来修改它的Cookie从而达到注入的目的。

我们修改它的Cookie为下列语句

admin' order by 3 #
在这里插入图片描述
我们看到页面成功登录了,说明我们注入成功,并且它有3个字段

0x03
我们试一下order by 4来看看页面返回什么
在这里插入图片描述
我们发现它报错了说明我们之前的操作都是正确的

0x04
接下来就是我们的常规爆破操作了:

查看其回显位置 -> 爆数据库名 -> 爆数据表名 -> 爆字段名 -> 爆值(列)

aaa' union select 1,2,3 #
在这里插入图片描述
aaa' union select 1,2,database() #
在这里插入图片描述
aaa' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='security') #
在这里插入图片描述
aaa' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='users') #
在这里插入图片描述
aaa' union select (select group_concat(id) from users),(select group_concat(password) from users),3 #
在这里插入图片描述

二次注入

本关为二次排序注入的示范例。二次排序注入也成为存储型的注入,就是将可能导致sql注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以出发sql注入。

  1. 黑客通过构造数据的形式,在浏览器或者其他软件中提交HTTP数据报文请求到服务端进行处理,提交的数据报文请求中可能包含了黑客构造的SQL语句或者命令。

  2. 服务端应用程序会将黑客提交的数据信息进行存储,通常是保存在数据库中,保存的数据信息的主要作用是为应用程序执行其他功能提供原始输入数据并对客户端请求做出响应。

  3. 黑客向服务端发送第二个与第一次不相同的请求数据信息。

  4. 服务端接收到黑客提交的第二个请求信息后,为了处理该请求,服务端会查询数据库中已经存储的数据信息并处理,从而导致黑客在第一次请求中构造的SQL语句或者命令在服务端环境中执行。

  5. 服务端返回执行的处理结果数据信息,黑客可以通过返回的结果数据信息判断二次注入漏洞利用是否成功。

参考自:https://www.cnblogs.com/lcamry/p/5763008.html

0x01
首先我们根据题意创建一个用户名为root密码也为root的用户(我们把他视为超级用户)
在这里插入图片描述

0x02
我们看到它提示可以修改密码,而且是在登录的状态下,所以我们想到可以二次注入
在这里插入图片描述
0x03
我们可以构造一个特殊的用户名,使得我们用此用户的改密码机制,实现更改超级用户(root)密码的目的
我们创建一个root' #用户
在这里插入图片描述
0x04
我们现在对 root' #用户改密码其实是对root用户该密码
因为更改密码的sql语句其实就是
select * from users where id=$id and passwd=$passwd
所以我们构造的用户就可以改超级用户的密码
所以我们将root的密码改为123,我们重新登录root用新密码看看
在这里插入图片描述
可以看到我们的root用户成功登录了进去,至此二次注入结束
在这里插入图片描述

宽字节注入

所谓宽字节注入我们得知道以下知识:
1.数据库是GBK编码格式
2.当数据库是GBK编码格式,我们利用的是mysql的一个特性,mysql在使用GBK编码的时候,会认为两个字节是一个汉字(前一个ascii码要大于128,才到汉字范围)

还有关于转义字符的知识:
反斜杠具有转义功能
1.一个反斜杠 可以转义后面任意的字符例如 \' \" 分别转义单引号与双引号
2.两个反斜杠 可以输出一个正常的反斜杠如\输出的是 \
3.三个反斜杠 可以输出一个正常的反斜杠(第三个) 如 \\输出的是 \
还可以后面加任意字符进行转义,输出一个反斜杠加任意字符
例如 \\\' \\\" 可以转义出 \' \"
这就是我们题里面见到的把单引号转义为了反斜杠加单引号
4.四个反斜杠 功能类似于三个反斜杠的功能,例如 \\\\输出为 \\ \\\\'输出为\\'
四个反斜杠的前两个就是2的功能,然后等价于再实现3的功能

0x00
我们根据题得知,此题将单引号与双引号进行了转义
//escape any backslash

$string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string);

//escape single quote with a backslash

$string = preg_replace('/\'/i', '\\\'', $string);   

//escape double quote with a backslash

 $string = preg_replace('/\"/', "\\\"", $string)

0x01
我们首先根据题意来输入一个参数
在这里插入图片描述
我们看到下面出现了你输入的参数以及转换为十六进制的输入,并且看到执行的sql语句是单引号,我们可以尝试单引号注入,但是由于这道题像上面那样把单引号进行了转义,所以我可以考虑宽字节注入

在这里插入图片描述
0x02
我们可以在参数里增加一个%df(ascii码大于128),因为根据mysql的规则
两个字符(GBK编码)会自动组合成一个汉字,所以我就达到将\过滤掉的作用

原始数据:1%df’
过滤后:1%df’
url编码:1%df%5c%27

然后根据规则%df%5c组合为一个汉字,那么就只剩下%27也就是单引号
最终结果:1Δ(一个汉字)’ 从而过滤掉了反斜杠,剩下的内容就和我们的单引号注入一致了

?id=1%df%27% --+
在这里插入图片描述

0x03
剩下的操作就是我们的常规操作了

查看其回显位置 -> 爆数据库名 -> 爆数据表名 -> 爆字段名 -> 爆值(列)

在这里插入图片描述
在这里插入图片描述
后面的操作我就不在赘述了,宽字节注入的要点其实就是将转义出来的反斜杠过滤掉,具体可以用一个ASCII码大于128的字符来进行拼凑,从而组成一个汉字。

如有其他问题请评论或者私聊博主

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【超详细】POST注入(Less-11)、Cookie注入(Less-20)、二次注入(Less-24)、宽字节注入(Less-32) 的相关文章

  • MySQL:@@ 是什么意思?

    我正在阅读本页上的 MySQL 文档 http dev mysql com doc refman 5 1 en set statement html http dev mysql com doc refman 5 1 en set stat
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 仅使用 varchar 作为外键的 MySQL 表

    我有一个包含单个唯一 VARCHAR 512 字段的表 我想让另一个表保存对第一个表的外键引用 两个表都使用 InnoDB 如果我向第二个表添加 VARCHAR 512 键并在其上添加外键约束 512 字节长的数据是否会保存两次 如果是这样
  • MySQL查询,删除所有空格

    我有一个不寻常的查询 这让我现在陷入困境 表字段有 id bigint 20 name varchar 255 desc text 有许多记录具有相同的名称和 desc 但 desc 的单词之间有一些额外的空格 like 1 t1 hell
  • mysql 详细查询字符串,如通配符

    不知道如何标题我的问题 哈哈 下面是我需要的 我的数据库中的值如下所示 test example 1 test example 2 test example TD 1 这些值的长度可以不同 test example 只是一个示例 某些值将具
  • PHP多图像文件上传并存储到文件夹和数据库

    我正在建立一个网站 向夜间狂欢者展示大城市夜总会场所和活动的列表 我正在尝试构建一个后端页面 管理员可以在其中添加俱乐部并输入信息 例如机构名称 位置 相对价格等 当然还有俱乐部的一些图像 每个俱乐部必须至少有一张图像 即主图像 可以有额外
  • 如何检查一个值是否已经存在以避免重复?

    我有一个 URL 表 但我不想要任何重复的 URL 如何使用 PHP MySQL 检查给定 URL 是否已在表中 如果您不想重复 可以执行以下操作 添加唯一性约束 use REPLACE http dev mysql com doc ref
  • MySQL 正在将我的时间戳值转换为 0000-00-00

    我是 PHP 新手 目前仍在学习中 我认为我的注册表有问题 username password email全部成功插入MySQL registered and last seen不要 我以为我正在使用getTimestamp 错了 但它呼应
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • MYSQL 按喜欢/不喜欢和受欢迎程度排序

    我有评论表 其中包括喜欢和不喜欢的内容 现在我在正确的顺序上遇到了问题 实际上 我的系统在顶部显示了最多点赞的评论 我正在 youtube 上寻找类似系统的东西 这意味着 100like 100dislikes 的评论的顺序高于 1 1 我
  • mod_rewrite, .htaccess 连接mysql数据库

    我希望 htaccess 文件中的 mod rewrite 链接到 mysql 数据库以向我提供映射信息 具体来说 我使用单个代码库来托管多个站点 因此 如果用户请求图像 例如 http www example com images car
  • 如何在 bash 上运行 MySQL 命令?

    以下代码在命令行上运行 mysql user myusername password mypassword database mydatabase execute DROP DATABASE myusername CREATE DATABA
  • 如何在 Laravel 5 中使用 Orchestral/Tenanti 构建具有多个数据库的多租户应用程序?

    我正在尝试使用 Laravel 5 构建和应用程序 它应该是使用多个数据库的多租户数据库架构 我的雇主出于安全目的要求这样做 我尝试手动管理主数据库迁移和租户迁移 但失败了 所以我决定借助 Laravel 特定包的帮助 这应该是我所需要的
  • 连接两个表而不返回不需要的行

    我的表结构如下所示 tbl users tbl issues userid real name issueid assignedid creatorid 1 test 1 1 1 1 2 test 2 2 1
  • MySQL 5:我的 GROUP BY 字段的顺序重要吗?

    Peeps 我的 MySQL 查询中有一些聚合 计算字段 我的 GROUP BY 子句是动态生成的 具体取决于用户在 Web 表单中选择的选项 很好奇 GROUP BY 子句中列出的字段顺序是否会对计算产生任何影响 例如 SUM AVERA
  • MySQL Tinybit(1) 通过视图的列

    我有一个连接 2 个表的视图 其中一个表具有表示布尔值的tinyint 1 类型的列 该表在连接时并不总是有条目 因此当行丢失时视图需要采用 0 false 值 我希望视图公开 TINYINT 1 类型且 NOT NULL 类型的列 因为它
  • MySQL,连接两列

    MySQL 表中有两列 SUBJECT and YEAR 我想生成一个字母数字唯一编号 其中包含主题和年份的串联数据 我怎样才能做到这一点 是否可以使用像这样的简单运算符 您可以使用CONCAT http dev mysql com doc
  • MySQL InnoDB引擎是否对只读事务运行任何性能优化

    根据参考文档 只读事务标志可能会提示存储引擎运行一些优化 设置会话事务只读 如果事务访问模式设置为 READ ONLY 则对表进行更改 被禁止 这可能使存储引擎能够提高性能 不允许写入时可能进行的改进 InnoDB引擎是否对只读事务运行这样
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • Mysql 将 --secure-file-priv 选项设置为 NULL

    我在 Ubuntu 中运行 MySQL 我在运行特定的查询集时收到此错误 MySQL 服务器正在使用 secure file priv 选项运行 因此无法执行此语句 当我这样做的时候SELECT secure file priv 在我的 m

随机推荐

  • 在Windows下使用MingGW[GCC+OpenMP]和CodeBlocks开发多核应用基本环境配置

    转自 http blog csdn net danny xcz article details 3332251 从06年开始 多核开发已经越来越多的成为所有应用设计必须考虑的问题 我使用MingGW CodeBlocks来测试OpenMP多
  • 浪涌保护电路设计

    浪涌保护电路设计 一 什么是浪涌 二 浪涌的产生 2 1浪涌的产生 2 2浪涌的传输介质 2 3IEC定义的浪涌标准 三 浪涌保护电路 一 什么是浪涌 浪涌是一种瞬变干扰 在某种特定条件下由电网造成的瞬间电压超出额定电压的范围 通常这个瞬变
  • Docker(三) 创建Docker镜像

    一 在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Docker s Container Image Repository Docker Hub 下载镜像 docker pull ubuntu 22
  • PS解决“无法使用快速选择,因为没有足够内存(RAM)”

    PS解决 无法使用快速选择 因为没有足够内存 RAM win R打开命令行 在输入框输入 regedit 点击确定 找到目录HKEY CURRENT USER Software Adobe Photoshop 点击对应版本Photoshop
  • 万维网服务器协议提供web,万维网的HTTP和FTP协议.doc

    万维网的HTTP和FTP协议 doc 万维网的HTTP和FTP协议 摘 要 20世纪40年代以来 人们就梦想能拥有一个世界性的信息库 在这个信息库中 信息不仅能被全球的人们存取 而且能轻松地链接到其他地方的信息 使用户可以方便快捷地获得重要
  • PyQt5 自动计算阵列矩阵

    说实话 其实我当时听懂了 真正写代码的时候越写越懵逼 所以还是记录下来吧 另外有兴趣了解的同学还是看老师的视频解说比较好 想学PyQT的同学强烈建议看这个老师的视频 由浅入深 从PyQT最基本的开始教学 非常棒 bilibili https
  • 第五章:平衡二叉树

    系列文章目录 文章目录 系列文章目录 前言 1 平衡二叉树的介绍 1 1 AVL树的概念 1 2 AVL树的性质 2 平衡二叉树的插入 2 1 平衡二叉树的插入步骤 2 2 平衡二叉树的旋转 2 2 1 左单旋 2 2 2 右单旋 2 2
  • /etc/vsftpd.conf详解

    匿名权限控制 anonymous enable YES 是否启用匿名用户no anon password YES 匿名用户login时不询问口令下面这四个主要语句控制这文件和文件夹的上传 下载 创建 删除和重命名 anon upload e
  • 4399笔试题

    1 冒泡排序的时间复杂度 2 有无序数字5000个 用什么算法能快速的找出最大的前50个数字 3 比如有10个台阶 一直青蛙一次只能跳一个或者二个台阶 问青蛙从第一个台阶开始跳最多有几种跳法 4 从区间 2 2 中随意取出二个实数 它们的和
  • 解析顶点着色器和片元着色器

    管线 也称渲染管线 因为 OpenGL ES在渲染处理过程中会顺序执行一系列操作 这一系列相关的处理阶段就被称为OpenGL ES 渲染管线 OpenGL ES 渲染过程就如流水线作业一样 这样的实现极大地提高了渲染的效率 如图就是 Ope
  • C/C++遍历文件夹下所有文件或文件夹名称(使用Windows API)

    目录 前言 实现思路 源代码 前言 在项目开发中 经常需要去遍历某一个文件夹下的一些资源文件 为了避免重复造轮子 刚好在此记录一下 实现思路 1 给出一个文件夹名称 2 获取文件句柄 3 过滤掉 和 上一级和当前目录 4 通过获取 find
  • (一)抖音快手短视频去水印原理分析

    抖音 一 首先获取分享短链接 一 我打12360他竟告诉我不可以订票 洛阳综合保税区 海关 https v douyin com JrA4H4N 复制此链接 打开 抖音短视频 直接观看视频 短链接 https v douyin com Jr
  • nginx负载均衡

    目录 负载均衡 nginx的七层代理和四层代理 七层代理的就是http请求和响应 四层代理与七层代理之间的区别 正向代理与反向代理 负载均衡 upstream 算法 算法总结 stream 负载均衡 通过反向代理来实现 nginx的七层代理
  • 修改 Ztree 节点的图标 ( icon 与 iconSkin)

    1 使用 icon 首先 进入 Ztree 官网 查看 Api http www treejs cn v3 api php 你可以下载官网上的ztree压缩包 在里面有 自定义图标的实例代码 或进入这个地址下载 https download
  • Vue2项目练手——通用后台管理项目第八节

    Vue2项目练手 通用后台管理项目 菜单权限功能 tab js Login vue CommonAside vue router index js 权限管理问题解决 router tab js CommonHeader vue main j
  • QT获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(一)通过CMD和WMIC命令行的方式

    QT通过CMD和WMIC命令行的方式获取电脑系统 主板型号 CPU型号 硬盘型号等相关信息 包括使用diskpart wmic DIrectX等 目录导读 一 DIrectX诊断工具 打开窗体查看 命令行输出 二 直接CMD输入SYSTEM
  • 【笔记】Oracle表中身份证、手机、邮箱脱敏SQL

    前天开始居家办公 用向日葵远程办公室电脑 但是昨天办公室的网崩了 导致无法远程 于是开始用腾讯云做数据库 为防止数据泄露就有了下边的关键数据脱敏操作 笔记如下 select from job xs where xh U201311735 R
  • 转:linux下配置JDK提示tools.jar/dt.jar权限不够

    原文 http lkf009 iteye com blog 1327912 提示权限不够的原因 CLASSPATH JAVA HOME lib tools jar JAVA HOME lib dt jar这样写是不对滴 要这样写 CLASS
  • Python字典用法

    get 函数返回指定键的值 如果值不在字典中返回默认值 gt gt gt a a 1 b 2 gt gt gt a get a 0 1 gt gt gt a get a 1 gt gt gt a get c 3 3 gt gt gt a g
  • 【超详细】POST注入(Less-11)、Cookie注入(Less-20)、二次注入(Less-24)、宽字节注入(Less-32)

    本博文仅用于信息安全防御教学 请遵守中华人民共和国网络安全法 目录 本博文仅用于信息安全防御教学 请遵守中华人民共和国网络安全法 POST注入 Cookie注入 二次注入 宽字节注入 POST注入 需要知道的一些知识 所谓POST注入指的是