[ACTF新生賽2020]crypto-classic0
阿新 • • 發佈:2022-12-02
開啟壓縮包裡面有三種檔案:
hint檔案內容:
哼,壓縮包的密碼?這是小Z童鞋的生日吧==
cipher檔案內容:
Ygvdmq[lYate[elghqvakl}
howtoencrypt是一個加密的壓縮檔案,裡面有一個classic0.c的檔案
首先試著解密cipher檔案的密文放入隨波逐流工具解密看一下:
未發現明顯特殊的明文,於是再去看hint檔案給的提示,很明顯壓縮包的密碼是生日,使用一個弱口令密碼,我們直接爆破壓縮包
爆破密碼得到:
金鑰是19990306
得到classic0.c,並開啟檢視
程式碼如下:
#include<stdio.h>
char flag[25] = ***
int main()
{
int i;
for(i=0;i<25;i++)
{
flag[i] -= 3;
flag[i] ^= 0x7;
printf("%c",flag[i]);
}
return 0;
}
分析題目程式碼,是要我們返回還原初始的明文,因此,題目中給的cipher的密文就可以用上了,直接寫解密程式碼
程式碼如下:
cipher = 'Ygvdmq[lYate[elghqvakl}'
for i in range(0,24):
flag = ord(cipher[i]) ^ 0x7
flag += 3
print(chr(flag),end='')
# actf{my_naive_encrytion}
總結:此題很簡單,考點就是壓縮包爆破,然後通過看c程式碼反向還原flag明文