2021年12月 Vivo千镜杯回顾
2021年12月 Vivo千镜杯回顾
感觉人太菜了,只做了一道签到的Mobile和一道流量分析
如果还有时间的话,再把另外一道Mobile拿出来复现
vivoNeedyou
打完比赛后,当作西理工的校赛出掉了
题解见
黑客入侵
流量分析题,上来一个txt的说明
打开祖传的wireshark
webshell一般用post请求上传,先过滤
tlswslhaoev4lva.php
相当可疑
然而我不熟悉webshell,只能百度大法好
然后我就找到了这道这里
https://zhuanlan.zhihu.com/p/429696539
一模一样!!!
大佬说:“这个特征应该是godzilla,接下来计算一下md5就能得出flag了~”
flag{fe7c3416a2ace0d97e4029e77368c5ab}
不知道是从哪个题库里出来的题目
鹤林玉露
赛后2022年用GDA+frida复现的题目
静态调试追下去,经验不足,有被吓到,都是奇奇怪怪的加密函数
实际动态调试(Frida)发现,getIVFromString()和getKeyFromString()全部是木大的东西(字符转byte),this.reset()下去全部木大,重心现在来到crypto函数上
这个keystream看起来很吓人
然而也是吓唬人的,每次出来的结果基本固定,所以没什么好研究的
大于16位的话,会多执行一次循环
这就没问题了,加密过程是先RC4后base64,解密只需反向即可
import base64
from Crypto.Cipher import ARC4
a=[39,-6,93,120,32,120,37,70,93,-48,76,37,-107,-69,-56,7,75,13,95,-63,61,-19,-28,57,-115,-84,73,38,60,-123,-36,61]
d=base64.b64decode("3y7/5zbYyaDBe/eYNWspKr+zdhPgR14H")
l=[]
for i in d:
l.append(i)
print(l)
key = b"qwert"
cipher = ARC4.new(key)
l1=cipher.decrypt(d)
x=[]
for i in l1:
x.append(i)
print(x)
s=""
for i in range(24):
e=x[i]^a[i]
if(e<0):
e=256+e #firda会返回有符号的数,然而python的chr只认无符号,需要加个转换
s+=chr(e)
print(s)
flag:
welcome to seclover!
总结
传统逆向真的玩不了了,赶紧转Web和Misc还来的及
一连几场CTF下来,做的全是签到题,还要加油