每年3月,在疯狂时期,XDA的房东都要接受立场挑战,所有房客都可以自由加入并提交他们的选择。他们使用哥伦比亚广播公司体育的三月疯狂括号服务来管理最高奖项,以管理奖项和计算获奖者。我不太了解篮球,但我当然对脚手架管理器应用程序的安全性感兴趣。我决定研究提交选择的过程。
在提交括号之前,您必须添加一个括号池。通常,这是受密码保护的,可以理解为具有到期日期,这意味着用户不能在特定日期(由括号管理员选择)后添加括号。由于我即将参加挑战,我决定记录我参加比赛的请求。截止日期后,我计划手动添加具有相同请求的池(使用其他帐户)。请求如下:
成功!服务器端不强制执行锁定,但显示逻辑会更改,以指示池现在已关闭。这不是一个很严重的漏洞,但是很有意思。我想知道还会发生什么。
接下来是提交给我的实际括号。第三,允许用户在某个时间之前提交自己的括号,之后就不允许再提交了,并且随着三月疯狂的出名也不能编辑其结果。正确!提交括号时,我注意到POST的有效负载中有一个非常有趣的参数:
应用程序是否依赖客户端来确定请求用户是否是管理员?让我们不要抱希望!我一直等到括号提交关闭,然后尝试发送一个带有一些新选项的POST请求,将有效负载中的“manager_action”更改为“1”。令人惊讶的是,请求成功了,我的选择也更新了。这可能是一个非常严重的漏洞,因为普通用户可以作为“括号管理器”运行任何括号功能。这可能包括查看其他参与者的联系信息,这可能会损害整个结果池的完整性。是时候以负责任的方式揭露CBS体育的漏洞并加以修复了。