HackerGame 2020 Writeup

文章目录[x]
  1. 1:签到题
  2. 2:猫咪问答++
  3. 3:2048
  4. 4:一闪而过的 Flag
  5. 5:从零开始的记账工具人
  6. 6:超简单的世界模拟器
  7. 6.1:蝴蝶效应
  8. 7:233 同学的字符串工具
  9. 7.1:编码转换工具
  10. 8:233 同学的 Docker

最近一周的时间我参加了中科大的 hackerGame 2020,这应该算是我第一次参加这种比赛(校赛应该不算吧

我是最近校赛时才开始接触CTF,发现还挺有意思的,看到一个个flag被自己找出来感觉还是很有成就感的,但是当看到有些题有好多人都做出来了,自己却还是一筹莫展的时候还是会有些头大(

这次比赛让我看到了我与其他人的差距,对我来说,CTF应该还有很长一段路要走,继续努力吧

明年再战!(

下面是Writeup(菜鸡没做出来几道但是还是要水一篇

签到题

如图,打开F12后修改为 value=1, step=1 或 max=1 都可以,或者直接访问 http://202.38.93.111:10000/?number=1 也可以

flag:

猫咪问答++

1. 以下编程语言、软件或组织对应标志是哺乳动物的有几个?

Docker,Golang,Python,Plan 9,PHP,GNU,LLVM,Swift,Perl,GitHub,TortoiseSVN,FireFox,MySQL,PostgreSQL,MariaDB,Linux,OpenBSD,FreeDOS,Apache Tomcat,Squid,openSUSE,Kali,Xfce.

一个一个嗯搜就行,得到答案12

2. 第一个以信鸽为载体的 IP 网络标准的 RFC 文档中推荐使用的 MTU (Maximum Transmission Unit) 是多少毫克?

搜索到文档 RFC1149: https://www.rfc-editor.org/rfc/rfc1149.txt

得到答案256

3. USTC Linux 用户协会在 2019 年 9 月 21 日自由软件日活动中介绍的开源游戏的名称共有几个字母?

找到网址 https://lug.ustc.edu.cn/news/2019/09/2019-sfd-ustc/

游戏名 Teeworlds

得到答案9

4. 中国科学技术大学西校区图书馆正前方(西南方向) 50 米 L 型灌木处共有几个连通的划线停车位?

通过百度街景找到目标地点,得到答案9

5. 中国科学技术大学第六届信息安全大赛所有人合计提交了多少次 flag?

找到网址 https://news.ustclug.org/2019/12/hackergame-2019/

得到答案 17098

最终得到flag

2048

F12查看js源码

按照代码访问网址 http://202.38.93.111:10005/getflxg?my_favorite_fruit=banana 即可得到flag

一闪而过的 Flag

嘛,这题其实只要手快就可以(Ctrl A, Ctrl C

从零开始的记账工具人

编写(搜索)脚本将中文大写数字转为阿拉伯数字再进行计算

 

 

# 繁体金额转数字
import re
def trad_to_int(money):
    # 转换字典
    trad_dict = {
        '零':0,
        '壹':1,
        '贰':2,
        '叁':3,
        '肆':4,
        '伍':5,
        '陆':6,
        '柒':7,
        '捌':8,
        '玖':9,
        '拾':10,
        '佰':100,
        '仟':1000,
        '万':10000,
        '亿':100000000,
        '角':0.1,
        '分':0.01
    }

    trad = re.search(r"[零壹贰叁肆伍陆柒捌玖拾佰仟亿角分]+", money)
    if trad is not None:
        num = 0
        add = 0
        sum = 0
        for i in money:
            if i in ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']:
                add = trad_dict[i]
                sum = sum + add
            elif i in ['拾','佰','仟','亿','角','分']:
                num = add * trad_dict[i]
                sum = sum - add
                sum = sum + num
                add = num
            elif i == '万' or i == '亿':
                sum = sum * trad_dict[i]
        if money[0] == "拾":
            sum += 10
        return round(sum,2)
    else:
        return money

 

超简单的世界模拟器

蝴蝶效应

上网搜索生命游戏,找到太空船模式(每四回合可以向右移动两格)

输入即可消除方块得到flag

233 同学的字符串工具

编码转换工具

上网搜索UTF-7,找到wikipedia上的编码部分 https://zh.wikipedia.org/wiki/UTF-7#%E7%B7%A8%E7%A2%BC

得知UTF-7分为ASCII字符部分和修正BASE64编码部分,不能直接输入flag,那只要将flag转为修正BASE64编码即可

flag转为修正BASE64编码后是 AGYAbABhAGc

Terminal 输入 +AGYAbABhAGc- 即可得到flag

233 同学的 Docker

不会Docker的我,在查询了相关资料后发现Docker镜像实际是分层存储的,每层放的是和上一层不同的文件,也就是说在前面某一层中一定有flag.txt的存在。

然而到最后也还是没学会Docker,那就嗯找呗(

这不,让爷逮到了

 

点赞

发表评论