
关于Bug Bounty的讨论已经很多,而且对于公司来说,此类程序的需求似乎很明显。 在我们自己的程序存在期间,Mail.ru Mail支付了25万美元以上,平均支出为379美元,我们已经
为此编写了一些内容。 今天,以最近的ZeroNights信息安全会议为例,我们将讨论如何吸引黑客通过专门的活动来参与bug和漏洞的搜索。
今年,ZeroNights会议在圣彼得堡的A2绿色音乐会俱乐部举行。 尽管离开了莫斯科,但会议在两天内聚集了1000多名与会者。 会议期间,听到了许多很棒的专家的报告。 如果您需要铁杆,请查看NUClear扩展,从图形模式到上帝模式,GPU虚拟化的发现漏洞,研究Marvell Avastar Wi-Fi:从零知识到空中零接触RCE。 今年,还有许多关于Web的有趣报告,您不仅可以看到幻灯片和WebVillage。 就个人而言,Ilya Nesterov和Sergey Shekyan的报告对我来说很重要。 与真正的用户区分开来的机器人越来越难。 在
此处阅读有关报告的更多信息。
我们的任务
我们为自己设定了以下任务:
- 在社区中推广Bug Bounty品牌和计划。
- 招聘成功完成任务的精明专家。
主意
在此类项目中最困难的挑战是:开发有趣的任务,首先将吸引参与者,其次,将使我们能够测试他们的实际技能。
今年,我们的展位是一栋装有气动邮件的办公楼。 任务的实质是:航空邮件的负责人将信件发送给会计人员,而黑客的任务是更改路径并使用特殊的阻尼器拦截信件。
展台看起来像这样:

我们使用的是网球,而不是邮件本身,它在必要的驱动器中上下浮动,默认情况下在“会计”中。 必须激活使用Arduino + RPi3控制的门,并将“邮件”重定向到其他驱动器。
行动方案:
- 我们已连接到工作的Wi-Fi网络。
- 我们在Raspberry Pi网络中找到了该网络,该网络已连接到控制阻尼器的Arduino。
- RPi正在旋转Web服务器。 需要完成两项任务-利用这些漏洞,最后他们提供了用于激活阻尼器的按钮,从而允许重定向“邮件”

球象征气动字母:

我们从研究人员的报告中得出了关于作业的想法。
任务
在第一个任务中,参与者必须找到RPi3主机并找到Apache Web服务器的典型配置漏洞:/ server-status页面,其中显示了所有传入的HTTP请求。 其中,带有GET参数中的秘密值的请求进入此页面,该请求允许通过第一级。 对于此任务,访问者收到了参与我们的Bug赏金计划的100美元促销代码。
解决方案dirbuster之类的普通工具会寻找Apache配置漏洞,所有当前的词典中都包含server-status行。 此外,我们还留下了一些提示,以便即使使用普通电话也无需任何脚本和程序即可解决任务。
为了完成第二项任务,有必要仔细研究已知监视页面的内容。 在客户端应用程序代码中,有必要找到一个未从接口调用的隐藏方法,但是该方法包含一个漏洞-Mongodb中的“盲” NoSQL注入。
解决方案要自动执行盲注,需要解决两个任务:
编写一个可以在一个请求中接收1位信息的脚本。 在输出中,您需要能够将感兴趣的逻辑表达式插入请求中,并根据服务器的响应,了解它是对还是错。
为了弄清楚如何从数据库中一点一点地获取感兴趣的信息(例如,如果您想知道secret ='some_secret'字段的值,可以使用正则表达式。首先,我们找出第一个字符secret〜'^ a',secret〜'^ b'... secret〜 '^ s'...之后,第二个秘密〜'^ sa',秘密〜'^ sb'...类似地,我们获得了整个秘密令牌)。
这不是唯一且不是最有效的实现;您可以在sqlmap代码中看到更好的选项。
主要的困难是非典型的技术堆栈:MeteorJS积极使用Websockets以及MongoDB和Pubsub来代替通常的HTTP请求和响应,它不允许使用现有工具,并且要求参与者能够自动进行攻击。 许多参与者在MeteorJS平台本身的功能中寻找漏洞,将其误认为工作代码。 而且,对于某些参与者,通过Websockets自动执行请求存在困难。

参加者获得了Mail.ru Bug Hunter运动衫,作为本次比赛的奖励。
结果
在会议的短短两天内,有200多人参加了我们的比赛。 100名参与者完成了第一项任务,45人完成了第二项任务。
当然,成功完成任务后,我们当场进行了采访。 生成的价格为$ 100的卡具有延迟效果,但是其中一些已经被激活,我们在H1上遇到了不错的错误。 他们鼓励黑客寻找新的错误,帮助我们改善系统并提高安全性。 一张小卡片-很好的结果。 一百美元等于一百美元。
