flag由两部分组成,后面部分通过md5加密后再进行base64编码,在经过一系列移位操作后要等于
"=HlVsHP=gtzu2maJaJNX7fOc"
写脚本爆破出移位前的字符串
key="=HlVsHP=gtzu2maJaJNX7fOc"
str1=['i']*24
z=0
i=0
while i < 24:
for i2 in range(5,-1,-1):
if z==0:
for i4 in range(3,-1,-1):
str1[i4*6+i2]=key[i]
i+=1
z=1
else:
for i3 in range(4):
str1[i3*6+i2]=key[i]
i+=1
z=0
print("".join(str1))
得到7X2usVfNmzHlOJatPHcaJg==
在进行md5反向爆破
可以在这个网站爆破https://www.cmd5.com/
所以密文的后半段为这个geometry
前面部分则是经典的AES的CBC加密,最后要等于
6bkvgcaLCJXnuvIVP7ZkAVJCTdTDMceb2M5v6a1JOg0=
密钥是
S0BlMjAyMiUleQ==
偏移(初始化向量)是
SSZWMjAyMioqKg==
进行解密得到flag的前半部分easymobile_2022_
两个一拼接得到最终的flag
ISCC{easymobile_2022_geometry}
也是刚开始入门mobile,遇到的这一题还是很有意思的