CTF 密码学入门
这几天看了一些密码学的题,觉得水特别深,加密解密的方法太多了,对于萌新来说,入门不容易。
下面说几种这几天做到的,常见的加密解密方式:
1.
base64/32/16
如:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=
(等号!!等号是重要标志以及符号+, /, =等)
如果最后剩下两个输入数据,在编码结果后加1个“=”;如果最后剩下一个输入数据,编码结果后加2个“=”;如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。
在base家族中有小写的是base64,没有189的是base32,“=”是凑位数的!!!
以及base密码变种太多,所以必要时可以直接quipqiup解密即可
Morse密码
如:
.- -.-- …–.- -… . …–.- … .- …- . …–.- .- -. — - … . .-. …–.- -… . -.-. — -… . … … … … .- .- .- .- .- -… .- .- -… -… -… .- .- -… -… .- .- .- .- .- .- .- .- -… .- .- -… .- -… .- .- .- .- .- .- .- -… -… .- -… .- .- .- -… -… .- .- .- -… -… .- .- -… .- .- .- .- -… .- -… .- .- -… .- .- .- -… -… .- -… .- .- .- -… .- .- .- -… .- .- -… .- -… -… .- .- -… -… -… .- -… .- .- .- -… .- -… .- -… -… .- .- .- -… -… .- -… .- .- .- -… .- .- -… .- .- -… .- .- .- .- -… -… .- -… -… .- .- -… -… .- .- -… .- .- -… .- .- .- -… .- .- -… .- .- -… .- .- -… .- -… .- .- -… -… .- -… .- .- .- .- -… -… .- -… .- .- -… -… .-
通常是由0101……或者如上图所示的.-.-…-为标志
培根密码
了解不多也不深。
大致是做题时看见了一回。
这个密码很神奇,大致上是AB来表示
如:
AAAAABAABBBAABBAAAAAAAABAABABAAAAAAABBABAAABBAAABBAABAAAABABAABAAABBABAAABAAABAABABBAABBBABAAABABABBAAABBABAAABAABAABAAAABBABBAABBAABAABAAABAABAABAABABAABBABAAAABBABAABBA等
Brainfuck/Ook!
形如:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++…+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.(Brainfuck)
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
JSFuck
形如:
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+
凯撒密码(数字相关)
这类密码是运用了字母之间的偏移量,为古典加密方式之一。
明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
如:
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
Unicode编码
这类密码通常有很明显的前缀&#。
如下:
flagrrrrrrrrrrrr
比如这样
URL编码
这个在web里面用到很多
url编码又叫百分号编码,是统一资源定位(URL)编码方式。
剩下的其它所有字符必须通过%xx编码处理。 现在已经成为一种规范了,基本所有程序语言都有这种编码,如js等
MD5
MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在Unix下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:
md5摘要算法是16进制,所以最多是到F!!!
38b8c2c1093dd0fec383a9d9ac940515
10
base91编码
先认识一下base91编码:
base91是一种将二进制数据编码为ASCII字符的高级方法。它类似于uuencode或base64,但效率更高。base91产生的开销取决于输入数据。它的数量最多为23%(而base64为33%),其范围可以降低到14%,这通常发生在0字节块上。这使得base91在通过电子邮件或终端线路等二进制不安全连接传输较大文件时非常有用。
顾名思义,base91需要91个字符来表示用ASCII编码的二进制数据。在94个可打印的ASCII字符(0x21-0x7e)中,以下三个字符被省略以构建base91字母表:
-(破折号,0x2d)
\(反斜杠,0x5C)
'(撇号,0x27)
摘自大佬博客:https://blog.csdn.net/qq_42777804/article/details/99671341
然后,国内还没有base91解密的免费网站,只能用外网的:
https://www.dcode.fr/base-91-encoding
这题是做bugku里base家族得知的,base家族还有另外的成员,先不列举了,之后有机会碰到再继续说。
11
核心价值观编码
就是个由核心价值观组成的编码,什么富强富强民主民主之类的啦
先前也是闻所未闻,毕竟没想到还有这么奇葩的编码
链接:https://sym233.github.io/core-values-encoder/
12
键盘码
这个顾名思义,就是由键盘可以看出来的编码
一般是类似这样:r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM
就是各个键所围成的中间的字符
13
伪加密
这类题通常是一个.zip文件然后设置了密码,告诉你这个密码如何如何,让你破解。
通常一般来说可以使用直接的破解工具爆破,也可以用winhex修改其密码
比如:
这里的09那个位置改成00就等于把密码置0
这样就可以直接进入文件
14
电报码
大概可以理解为莫斯的变种吧,可以支持中英文解码
网址:https://www.qqxiuzi.cn/bianma/dianbao.php
可以应用于数字直接转中文
15
猪圈密码
猪圈密码(亦称朱高密码、共济会暗号、共济会密码或共济会员密码),是一种以格子为基础的简单替代式密码。即使使用符号,也不会影响密码分析,亦可用在其它替代式的方法。
简单来说,就是格子图形和英文字母对应
16
rot13编码
凯撒变种
套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可。A换成N、B换成O、依此类推到M换成Z,然后序列反转:N换成A、O换成B、最后Z换成M。只有这些出现在英文字母里头的字元受影响;数字、符号、空白字元以及所有其他字元都不变。因为只有在英文字母表里头只有26个,并且26=2×13,ROT13函数是它自己的逆反
简单来说就是位移量为13的凯撒密码
未完待续……