密码学脚本类总结:
ASCII转字符脚本:
指解题中遇到长串ASCII码形式,需要转字符,但是一个个转太麻烦,又没有在线的长串ASCII码转字符网站。且给出的长串ASCII码的间隔依情况而定,如:/119/101/,这时需要自己根据对应间隔写出批量转换脚本。
源代码修改逻辑解密:
指解题中在有较完整源代码的情况下代码逻辑比较明朗,且可以逆向。这时需要充分利用有源代码的优势来在源代码中修改处逆向逻辑,不要自己从头到尾另写一份。
单独的密文类型
多层传统加密混合:
Bugku的密码学的入门题/.-:(摩斯密码、url编码、出人意料的flag)
摩斯密码是以.-或01组成的,分隔符有空格或斜杠/,所以直接用摩斯密码在线解密即可。
答案中存在%u7b和%u7d,猜想是{ }的url编码,{的url编码是%7B,}的url编码是%7D
所以去掉u符号直接得到flag:
FLAG{D3FCBF17F9399504}
结果全部要小写:
flag{d3fcbf17f9399504}
攻防世界之混合编码:(base64解密、unicode解密、ASCII转字符脚本、传统base64解密、ASCII解密)
发现两个等号和19azA~Z的典型base64编码型,直接base64转换:
转了一堆&#出来,根据以前的做题经验,猜unicode或hex:
这三个数的看着像ASCII,因为题目暗示混合编码,直接转换看看:ASCCII表对照法:
单层传统加密:
Bugku crypto之聪明的小羊:(题目描述暗示、栅栏密码)
栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个)
传统栅栏密码(矩阵行列,密钥是行数):
假如有一个字符串:123456789
取字符串长度的因数进行分组,假如key=3
1 2 3 \分组情况,每三个数字一组,分为三组
4 5 6
7 8 9
然后每一组依次取一个数字组成一个新字符串:147258369 \加密完成的字符串
解题:
试一般的栅栏密码,取5为矩阵行数,得到" cyperrocaegireeol} eahfocec gnbip不正确,由题目描述可知分两组:
fa{fe13f590
lg6d46d0d0}
那么答案很明显了,上一个下一个即可得flag:
flag{6fde4163df05d900}
攻防世界之转轮机加密:(转轮机加密)
原理就是转齿轮把一个字母换成另一个。