Burp练兵场之通过加密语言机绕过身份验证

admin 2024年8月6日15:23:51评论15 views字数 1720阅读5分44秒阅读模式
投稿

前言

之前有一段时间在玩Burp的靶场,感觉还不错,总体排名也冲到了top30
Burp练兵场之通过加密语言机绕过身份验证

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

Burp练兵场之通过加密语言机绕过身份验证


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

靶场信息介绍

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


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

Burp练兵场之通过加密语言机绕过身份验证
查看对应的数据包后确定cookie的值CLaBQxXK7jjl8irpHHxq6jc0HJqzyyGlh0up7tP7WZc=

Burp练兵场之通过加密语言机绕过身份验证

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

Burp练兵场之通过加密语言机绕过身份验证

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

Burp练兵场之通过加密语言机绕过身份验证

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

Burp练兵场之通过加密语言机绕过身份验证

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

Burp练兵场之通过加密语言机绕过身份验证
追踪一下重定向

Burp练兵场之通过加密语言机绕过身份验证
推测Cookie字段的notification参数值会被解密并回显到响应中,修改notification尝试

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

Burp练兵场之通过加密语言机绕过身份验证
可以控制台输入Date.now()来获取对应的时间戳

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

Burp练兵场之通过加密语言机绕过身份验证
我们看到是可以成功构造的,但是stay-logged-in明文形式不应该包含前面那一串”Invalid email address: “,所以我们要想办法把它去掉

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

Burp练兵场之通过加密语言机绕过身份验证
得到新的字符串

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

Burp练兵场之通过加密语言机绕过身份验证
在预期 cookie 值的开头添加 9个字符xxxxxxxxxadministrator:1672988774905

Burp练兵场之通过加密语言机绕过身份验证
新的密文发送到解码器,然后 URL 和 Base64 对其进行解码。这一次,从数据开头删除32个字节

Burp练兵场之通过加密语言机绕过身份验证
成功地构造出不仅没有无用前缀而且还能成功解密的密文,于是我们将其替换到stay-logged-in参数值,并替换成新的session值,发现我们就可以进入administrator用户页面了

Burp练兵场之通过加密语言机绕过身份验证
将值赋给stay-logged-in

Burp练兵场之通过加密语言机绕过身份验证
修改成/admin端点,成功突破限制登录管理员面板

Burp练兵场之通过加密语言机绕过身份验证
根据试验要求访问/admin/delete?username=carlos删除carlos用户

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

原文始发于微信公众号(掌控安全EDU):Burp练兵场之通过加密语言机绕过身份验证(思路鉴赏)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月6日15:23:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Burp练兵场之通过加密语言机绕过身份验证http://cn-sec.com/archives/2003602.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息