STEM CTF: Cyber Challenge 2019 Write-ups

好久没有玩CTF,跪了(QAQ)本文是关于web题目的解析后面两题是赛后,看着大佬的思路进行复现的,文末已经给出相应的参考文章

什么都不说了,先跪就好(Orz)

Turing Test

http://138.247.13.111/

这一题被称为热身题,只需要结合这个维基百科就可以得到flag:https://en.wikipedia.org/wiki/Alan_Turing

成功拿到flag:

Flag: MCA{sms_2fa_is_bad_also}

Super Secret Hidden Service

https://138.247.13.115/

由给出的链接进入网站发现Google对于这个网站的返回报错处理:

这只是意味着caddy服务响应客户端发送的服务器名称,因为我们发送了这个IP,我们得到了错误响应,所以我们需要知道这个域名。

具体原因可以参考:https://nvd.nist.gov/vuln/detail/CVE-2018-19148

我们使用nmap进行简单的扫描就会得到

访问扫描得到的DNS:138.247.13.115.xip.io就可以得到flag:

TODO

http://138.247.13.110/

随手输入内容进行简单的测试,发现输入的内容重定向到:http://138.247.13.110/todolist/1000/

查看网页源代码发现两个自定义的js脚本

lists.js 这个是对我们有用的脚本,仔细读取后面的内容可以发现

// send put request using the data of the get for the same id
  var todoURL = '/api/todos/' + todoID + '/'
  $.getJSON(todoURL, function(data) {
data.is_finished = isFinished;
if (isFinished) {
  data.finished_at = moment().toISOString();
} else {
  data.finished_at = null;
}
$.ajax({
  url: todoURL,
  type: 'PUT',
  contentType: 'application/json',
  data: JSON.stringify(data),
  success: function() {
location.reload();
  }
});

我们可以访问这里面的数据

因此我们只需要使用burp,对http://138.247.13.110/api/todos/<id>/其中的id从1遍历到1000即可</id>

得到flag:MCA{al3x4_5et_a_r3minder}

或者写一个脚本:

import requests
import re
url = 'http://138.247.13.110/todolist/'

for i in range(1,1001):
    print('Requesting ' + url + str(i))
    response = requests.get(url + str(i))
    stripped = re.sub('<[^<]+?>', '', response.text)
    if 'MAC' in stripped:
        print(stripped.strip())
        break

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖