CTF密码学培训(6)

163 阅读2分钟

密码学脚本类总结:

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}

攻防世界之转轮机加密:(转轮机加密)

原理就是转齿轮把一个字母换成另一个。