Burp练兵场之通过加密语言机绕过身份验证(思路鉴赏)

前言

之前有一段时间在玩Burp的靶场,感觉还不错,总体排名也冲到了top30

图片

靶场地址 → https://portswigger.net/web-security/logic-flaws/examples/lab-logic-flaws-authentication-bypass-via-encryption-oracle

图片


通过加密预言机绕过身份验证

靶场信息介绍

此实验室包含一个逻辑缺陷,该缺陷会向用户公开加密预言机。要解决实验室问题,请利用此缺陷访问管理面板并删除 Carlos。
您可以使用以下凭据登录到自己的帐户:wiener:peter


登录的时候发现了记住账号的选项stay logged in

图片


查看对应的数据包后确定cookie的值CLaBQxXK7jjl8irpHHxq6jc0HJqzyyGlh0up7tP7WZc=

图片

尝试乱输内容后提交评论发现被重定向到了该页面,内容无效

图片

查看对应的burp数据包
设置了notification=GzBnDr%2bC1mgTchLCnPA41Kn4UfsXHRfxbjETSuOKa1k%3d

图片

同理,在修改邮箱处进行了尝试 回显:Invalid email address: bbb

图片

语句会被加密并存入Cookie字段的notification参数中

图片


追踪一下重定向

图片


推测Cookie字段的notification参数值会被解密并回显到响应中,修改notification尝试

图片


发现和我们推测的差不多,于是我们相当于找到了一个加密点一个解密点,然后我们看到Cookie字段的stay-logged-in参数值与这个也有点类似,尝试将stay-logged-in的值放入到notification
Cookie 应该采用username:timestamp格式 .将时间戳1672988774905复制到剪贴板。

图片


可以控制台输入Date.now()来获取对应的时间戳

图片


惊奇地发现是可以成功在解密点解出的,说明解密点是通用的,那么加密点就也是通用的,然后通过观察发现stay-logged-in的明文形式是由用户名与时间戳以冒号分隔开的格式构成的,于是我们将wiener换成administrator:1672988774905以后加密,并尝试解密

图片


我们看到是可以成功构造的,但是stay-logged-in明文形式不应该包含前面那一串”Invalid email address: “,所以我们要想办法把它去掉

图片


通过两次加密信息的对比,发现前面23位是固定的,说明是对称加密,就是原文有多长,密文就会有多长,所以我们尝试直接删除明文中相应数量的字节,将密文发到decoder,在十六进制下删除23字节(因为那串无用前缀有23字节长)
Invalid email address:

图片


得到新的字符串

图片


删除以后再按照原格式编码回去,在解密点看看能不能解密出来
+6NTr6pZvYqxhsW9q50Y/3z8/xlxIqRu6+23OmgpOFjgK3r5JMDg9FdRPSUz
发现会有报错,说密码密文分块必须是16的倍数,于是我们需要填充一些字节让其达到16的倍数,所以我们填充9个无用字符,然后因为是无用的,填充完以后再删除32字节就可以正常解密了

图片


在预期 cookie 值的开头添加 9个字符xxxxxxxxxadministrator:1672988774905

图片


新的密文发送到解码器,然后 URL 和 Base64 对其进行解码。这一次,从数据开头删除32个字节

图片


成功地构造出不仅没有无用前缀而且还能成功解密的密文,于是我们将其替换到stay-logged-in参数值,并替换成新的session值,发现我们就可以进入administrator用户页面了

图片


将值赋给stay-logged-in

图片


修改成/admin端点,成功突破限制登录管理员面板

图片


根据试验要求访问/admin/delete?username=carlos删除carlos用户

  声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

免费领取安全学习资料包!


渗透工具

技术文档、书籍

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

应急响应笔记

学习路线

  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值