1.攻防世界之混合编码:(base64解密、unicode解密、ASCII转字符脚本、传统base64解密、ASCII解密)
下载附件,打开,发现两个等号和19azA~Z的典型base64编码型,直接base64转换:
转了一堆&#出来,根据以前的做题经验,猜unicode或hex:
一开始用了十六进制来转,转了个四不像出来,后来发现转错了,unicode在线解码网址:
http://www.jsons.cn/unicode/
这三个数的看着像ASCII,因为题目暗示混合编码,直接转换看看:ASCCII表对照法:
ASCII转字符脚本法:
import re
r="/119/101/108/99/111/109/101/116/111/97/116/116/97/99/107/97/110/100/100/101/102/101/110/99/101/119/111/114/108/100"
r=re.split("/",r)
#print(r)
flag=""
for i in range(1,len(r)):
flag+=chr(int(r[i]))
print(flag)
————————————————
2.单层传统加密:
Bugku crypto之聪明的小羊:(题目描述暗示、栅栏密码)
所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)
传统栅栏密码(矩阵行列,密钥是行数):
假如有一个字符串:123456789
取字符串长度的因数进行分组,假如key=3
1 2 3 \\分组情况,每三个数字一组,分为三组
4 5 6
7 8 9
然后每一组依次取一个数字组成一个新字符串:147258369 \\加密完成的字符串
解题:
试一般的栅栏密码,取5为矩阵行数,得到" cyperrocaegireeol} eahfocec gnbip不正确,取5为矩阵列数,得到" cebgccfe en eohplprgecrayoii aoreg”,也不正确,除了常规的栅栏密码,还有
由题目描述可知分两组:
fa{fe13f590
lg6d46d0d0}
上一个下一个即可得flag:flag{6fde4163df05d900}
3.看我回旋踢
得到字符:synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}
很明显,对应着flag{XXX}
synt对应flag
所以我们可以判断出这大概是移位密码中的凯撒密码,而s对应f,代表移位13位
解码得:flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}