白帽故事 · 2022年8月30日 0

【€300】打破逻辑:不安全的参数

背景介绍

今天的两个案例分享来自国外一位名叫can1337的白帽小哥,为了安全起见,以下会将目标网站统一以“redacted.com“代替。

使用不安全参数绕过邮件验证

redacted.com 有 2 个邮件功能,主要邮件和额外邮件,拥有主邮件的用户可以添加额外邮件,但是,要使额外邮件成为主邮件,应用程序需要向额外邮件发送验证码。

首先,让我们来看看这个过程在正常情况下是如何进行的。

1、在额外邮件部分输入邮件地址时,发现邮件需要经过验证

(如上图所示,系统会发送一封确认邮件,在该输入框旁边的两个选项分别为“重新发送”和“删除”)

2、运行BurpSuite,返回页面,在此输入邮件地址然后抓取请求包:

3、 “activated”和“for_student_verification”这两个不安全参数会返回 false,我们将两个参数更改为 true 后提交请求。

4、返回 redacted.com,可以在电子邮件框旁边看到了一个勾选按钮,我们勾选按钮并刷新了页面。

是的,额外邮件成功变为主要邮件,旧的主要邮件变为了额外邮件。

使用隐藏的不安全参数绕过验证

在 redacted.com,用户可以添加自定义“学习”信息,但是“学习”信息必须首先得到管理层的验证和批准。

当用户添加他们的自定义学习信息时,会有一个验证过程,而验证由 redacted.com 管理层直接完成。

但是,一个隐藏的不安全参数可以让用户的自定义学习信息看起来已经被批准,并最终真正获得批准。

一起来看一下:

1、 正如上面所说,在“I study”字段中,我们可以添加自己的特殊学习信息,例如,让我们输入“admin”并发送请求

2、运行 BurpSuite,再次输入“admin”并发送请求

3、抓包如上,我们似乎并没有看到任何感兴趣的内容,因此发送该请求并查看了响应包,在响应包中,我们可以看到一个参数“isVisible”被设置为 false

4、重新提交请求,并在请求末尾添加参数“isVisible:True”

重新刷新页面,可以看到添加的信息直接出现在个人信息中:

通过这种方式,攻击者将能够绕过验证添加他们想要的任何信息,这些漏洞目前已被修复,该公司因这两个漏洞为白帽小哥发放了 300 欧元的赏金奖励。

希望本篇文章,你也能有所收获~感谢阅读!