连续五天打了护网杯、N1CTF、ByteCTF、广东省强网杯,也自闭了五天,书也不看了,课也不上了,逆向逆得一脸懵逼,尤其是广东省强网杯两道逆向实在打不动,这是一个菜鸡逆向手被逼做web的血泪故事(菜是原罪
Crypto相对来说比较容易,第一道hash(argon2)实在太强了服务器都跑不动,第三道RSA挺有意思的,打算有空单独写一下(咕咕咕),Web是第一次做,从入门到放弃,签了个到就放弃了,MISC纯属脑洞,RE自闭
Crypto
老王的秘密
shamir,没啥好说的直接解
1 | shares = [ |
f1ag{25019971af01d63d4ea8ad95da516}
美好的回忆
64bits块_CBC加密
加密逻辑为
C = XOR(M,key,iv)
iv = C
给出了前两组的明文、密文
前两组加密逻辑为
C1 = xor(M1,key,iv)
C2 = xor(M2,key,C1)
c1,c2,m1,m2已知,先异或出iv再异或出key再解密即可
1 | f = open('flag.txt.encrypted','rb') |
flag{21cb8c804abb60be5c9befcc928ccf5b}
悲伤的结局
跟上一题一样的加密逻辑,不同的是给出了明文的尾部
由于
Cn = XOR(Mn,key,Cn-1)
Cn-1 = XOR(Mn-1,key,Cn-2)
有
Mn-1 = XOR(Cn ,Cn-2,Mn)
C已知直接从后往前逆推出明文
还有一个小问题是尾部的padding,遍历一下可以异或出padding为’\x0a\x04\x04\x04\x04’,所以真正明文的尾部为’kee p away from xiaocui!\x0a\x04\x04\x04\x04’,如此就可解密
1 | p = 'kee p away from xiaocui!\x0a\x04\x04\x04\x04' |
flag{0e82f1e5b75688b4e6d39c08f1651c93}
Web
小明又被拒绝了
修改cookie admin = 1
伪造ip = 127.0.0.1
get flag
免费的,ping一下
过滤了空格,cat,flag等字符,用\和${IFS}绕过即可
payload:111;gre\p${IFS}fla\g${IFS}/fla\g
MISC
完美的错误
题目提示了错位数组,看起来是base58,遍历一下即可
1 | import string |
flag{adb88f7b70a20983833a7615fb103e01}
撸啊撸
图片隐含了一个ELF,ida打开
提取字符串,遍历异或一下
1 | s = '938gce1`872db99db`b342d23c0g9g2d' |
发现异或到1的时候flag比较正常,包裹上flag{}提交
flag{829fbd0a963ec88ecac253e32b1f8f3e}