Hackergame 2024 Writeup
· 阅读需 49 分钟
Lysithea 48th 5250
签到
http://202.38.93.141:12024/?pass=true
喜欢做签到的 CTFer 你们好呀
先找到他们招新的官网:https://www.nebuu.la/ (意外找了挺 久,从比赛主页-承办单位进)
打开是个伪终端,功能实现还挺全的,虽然知道都是写好的JS,骗骗自己而已
env
里有一个,然后ls -al
可以看到个.flag
,cat .flag
是另一个。
还有个解法是去逆向JS,有几个很长的base64解一解就出来了。
猫咪问答(Hackergame 十周年纪念版)
Hackergame的问答题目有一点好(或者不好),就是它提交答案是不限提交间隔的。偏偏它还出一大堆纯数字的题,这不是明摆着教人爆破嘛。
总之先拍个爆破脚本在这里:
import requests
from bs4 import BeautifulSoup
sess = requests.session()
sess.cookies.set('session', os.environ.get('TOKEN',''), domain='202.38.93.141')
HOST = 'http://202.38.93.141:13030/'
ans = {
'q1': '3A204',
'q2': '2682',
'q3': '程序员的自我修养',
'q4': '336',
'q5': '',
'q6': '',
}
TARGET = 'q6'
resp = sess.post(HOST, data = ans)
bench_score = int(BeautifulSoup(resp.text, 'lxml').select_one('.alert').text.split('。')[0].split('为 ')[1])
for i in range(0, 6000):
ans[TARGET] = str(i)
resp = sess.post(HOST, data = ans)
score = int(BeautifulSoup(resp.text, 'lxml').select_one('.alert').text.split('。')[0].split('为 ')[1])
if score > bench_score:
print('correct', i)
break
else:
print('wrong', i)
Q1: 在 Hackergame 2015 比赛开始前一天晚上开展的赛前讲座是在哪个教室举行的?
首先去找历届Hackergame新闻,能找到他们中科大Linux用户协会的历年活动记录,不过很可惜Hackergame赛前讲座没有到第一届的。不过上面有个第三届的【链接已失效】,于是就去web of archive上找了一下,结果找到了2017年失效之前的网页内容。3A204
Q2: 众所周知,Hackergame 共约 25 道题目。近五年(不含今年)举办的 Hackergame 中,题目数量最接近这个数字的那一届比赛里有多少人注册参加?
虽然我知道Github全找一遍就行,但是太累了,MD跟他爆了!