越权漏洞与JWT的利用

越权漏洞



一、越权是什么

如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对 对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

二、案例演示

在这里插入图片描述

这里通过pikachu靶场来演示水平越权和垂直越权

水平越权

在这里插入图片描述

这里有一个登录框,提示中有账号密码,我们随便输入一个账号

在这里插入图片描述

登录lucy的账号,可以看到url地址中有username=lucy,我们尝试输入其他用户

在这里插入图片描述

可以发现更改以后个人信息就从lucy变成了lili的了,这个就是水平越权

垂直越权

在这里插入图片描述

这也是一个登录框,提示中可以看到admin是管理员用户,pikachu用户是普通用户,我们登录普通用户

在这里插入图片描述

这里url地址没有输入点,我们尝试抓包查看

在这里插入图片描述

普通用户的包是这样的,有cookie值,我们试试抓一下管理员用户的

在这里插入图片描述

用管理员用户的cookie值登录普通用户

在这里插入图片描述

可以看到pikachu有了admin用户的功能,这个就是垂直越权

三、JWT

JWT是什么

JWT全名为JSON Web Token,是一种开放标准,用于在网络应用间传递信息的一种安全方式。它使用 JSON 对象作为信息的载体,具有轻量级、可扩展、易于传递等特点,并且可以加密和签名以确保安全性。JWT通常用于用户身份验证和授权,以及在不同系统之间传递信息。由于其便捷和高效的特性,它已经被广泛应用于各种Web应用中。

如何利用

JWT是由三部分组成,是以base64编码的,以.分割,第一部分称之为头部,规定算法类型或者令牌类型,第二部分为
载荷,存储了用户的信息,第三部分为签名,用来验证JWT的完整性与真实性

四、进阶演示

在这里插入图片描述

这里通过WebGoat靶场演示

垂直越权

在这里插入图片描述

用第四关来演示,现在使用的用户是TOM,我们尝试删除投票的数据,发现只有管理员用户能操作,抓包查看

在这里插入图片描述

这个就是我们抓到的包,有[JWT](https://jwt.io/)加密,去解密看一下

在这里插入图片描述

解密后发现是我们登录的信息,还提示我们不是admin用户,我们更改一下

在这里插入图片描述

这里我们更改了签证方式为none,然后将false改为了true,然后发送数据包

在这里插入图片描述

回显包中显示我们更改成功了,回到页面刷新一下就回发现票数重置了

在这里插入图片描述

水平越权

在这里插入图片描述

用第七关来演示,我们让Tom帮我们买单,点击here看提示信息

在这里插入图片描述

有JWT编码,我们复制查看一下

在这里插入图片描述

这里给了Tom的信息,但是这个验证过期了,iat是开始时间,exp是过期时间,我们可以通过我们可以通过时间转换器来查看

在这里插入图片描述

开始时间不用管,我们直接修改他的过期时间

在这里插入图片描述
在这里插入图片描述

改好之后我们就可以发送抓包了

在这里插入图片描述

这次抓到的数据包居然没看JWT值,结合提示发现JWT值可以在url地址中,说明JWT值也可以在其他地方出现,数据包中有Authorization: Bearer null,这个代表着他可以承载空值,我们将修改好的JWT值放到这里发包

在这里插入图片描述

他会直接提示我们已经完成了任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值