ctf之加解密

在乌云上看到**好基友一辈子**写了那些年做过的ctf之加密篇,感觉挺不错的,首先感谢原作者分享,之前也想过写一篇类似的文章,但是迟迟没有动手,正好看到好基友一辈子的文章,有些可能作者没有提到,我就补充一些,也欢迎大家补充: p

0x01 Base64

Base64:

1
ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10pNTU2NJC3ODHHYWJIZ3P4ZWY=

Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’

Base32: Base32和Base64相比只有一个区别就是,用32个字符表示256个ASC字符,也就是说5个ASC字符一组可以生成8个Base字符,反之亦然。

base64在线编解码

当然还有base32和base16加密,base64全家桶可以用python里的base64模块来搞定。

参考链接1

参考链接2

0x02 希尔密码

希尔密码:密文: 22,09,00,12,03,01,10,03,04,08,01,17 (明文:wjamdbkdeibr)

解题思路:使用的矩阵是 1 2 3 4 5 6 7 8 10

更多请参考原文链接

详见百度百科

0x03 栅栏密码

栅栏密码:把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。

密文样例:tn c0afsiwal kes,hwit1r  g,npt  ttessfu}ua u  hmqik e {m,  n huiouosarwCniibecesnren.

解密程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char s[]= "tn c0afsiwal kes,hwit1r  g,npt  ttessfu}ua u  hmqik e {m,  n huiouosarwCniibecesnren.";  
char t[86]= "";
int i,j,k;
k=0;
for (i=0;i<17;i++)
{
for(j=0;j<5;j++)
{
t[k++]= ch[j*17+i];
}
}
for(i=0;i<85;i++)
{
printf("%c",t[i]);
}

更多请参考原文链接 百度百科

0x04 凯撒密码

凯撒密码:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

密文样例:

1
U8Y]:8KdJHTXRI>XU#?!K_ecJH]kJG*bRH7YJH7YSH]*=93dVZ3^S8*$:8"&:9U]RH;g=8Y!U92'=j*$KH]ZSj&[S#!gU#*dK9\.

解题思路:得知是凯撒加密之后,尝试进行127次轮转爆破:

1
2
3
4
5
6
7
8
9
10
11
12
13
lstr="""U8Y]:8KdJHTXRI>XU#?!K_ecJH]kJG*bRH7YJH7YSH]*=93dVZ3^S8*$:8"&:9U]RH;g=8Y!U92'=j*$KH]ZSj&[S#!gU#*dK9\."""</p>
for p in range(127):
str1 = ''
for i in lstr:
temp = chr((ord(i)+p)%127)
if 32<ord(temp)<127 :
str1 = str1 + temp
feel = 1
else:
feel = 0
break
if feel == 1:
print(str1)

更多请参考原文链接

0x05 维吉利亚加密

凯撒密码的升级,更多详见百度百科

0x06 Unicode

密文样例:

1
\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\

unicode在线解密

0x07 brainfuck

类型:

1
2
3
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

利用BFVM.exe直接解密

用法 loadtxt 1.txt

brainfuck在线解密

0x08 摩斯密码

密文样例:–  —  .-.  …  .

摩斯密码在线翻译

0x09 jsfuck or jother

把 JavaScript 代码转为 ()[]{}!+ 字符

密文样例:

1
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()

在线解密:

1.jsfuck

2.patriciopalladino

其他解密方式:alert(xxx)、console(xxx)、document.write(xxx)即可(xxx为编码内容)。

更多jother介绍请参考:jother编码之谜

0x0a 培根密码

培根所用的密码是一种本质上用二进制数设计的。不过,他没有用通常的0和1来表示,而是采用a和b。

详见百度百科

0x0b 猪圈密码又称共济会密码

详见百度百科

0x0c CRC32

密文样例:4D1FAE0B

1
2
3
4
5
6
7
import zlib
def crc32(st):
crc = zlib.crc32(st)
if crc > 0:
return "%x" % (crc)
else:
return "%x" % (~crc ^ 0xffffffff)

更多请参考原文链接

0x0d其他的一些脑洞加密解密参考:

(1)当铺密码

(2)非斯的象形文字翻译图

(3)ADFGX加密法

(4)电脑键盘QWE加密法

(5)电脑键盘棋盘加密

(6)电脑键盘坐标加密

(7)手机键盘加密解密

(8)数字坐标加密字母

(9)字母表顺序加密法和反字母

分享一个小技巧,如果没有什么思路可以试试在线词频分析

对于其他一些未知密文,可尝试到下列几个网站转换试试,看看运气

http://web.chacuo.net/charsetuuencode

http://blog.csdn.net/ab748998806/article/details/46368337

说到字符转换,不得不的说到JPK神器

0x0e其他加密算法和哈希散列

AES RSA RC4 Rabbit TripleDes

SHA1 SHA224 SHA256 SHA384 SHA512 MD5 MD4 MD3 MD2 HmacSHA1 HmacSHA224 HmacSHA256 HmacSHA384 HmacSHA512 HmacMD5 PBKDF2 太多了。。。

可以参考网上许多的在线解密网站(百度和谷歌来搜索,小技巧:用谷歌时这样用 MD5 onlie crack, MD5 online decode 类似)和工具。

0x0f 混淆加密

列举一些常见的混淆加密

asp混淆加密

php混淆加密

css/js混淆加密

VBScript.Encode混淆加密