Base64编码供给把3个五位字节(3,输出字符使用’=’365体育官网

MarkdownPad Document

那一个年做过的ctf之加密篇(坚实版)

超越五成转自WooYun知识库,出席了作者本身的敞亮

近年来ctf做的相比较多,顺便整理一下做个笔记,大致有加密篇、隐写篇、逆向破解和web方向的几篇文章,整理出来之后会陆续发出来。

0x01 Base64

365体育官网,Base64:
ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10pNTU2NJC3ODHHYWJIZ3P4ZWY=

Base64编码供给把三个陆位字节(3*8=24)转化为四个7位的字节(4*6=24),之后在五个人的前面补八个0,形成八位3个字节的花样。
借使剩下的字符不足二个字节,则用0填充,输出字符使用’=’,故而编码后输出的文本末尾大概会师世1或2个’=’

Base32:
Base32和Base64相比较只有三个界别正是,用3一个字符表示257个ASC字符,也正是说陆个ASC字符一组能够变动7个Base字符,反之亦然。

base64在线编解码:http://base64.xpcha.com/
base32在线解码(需FQ):http://emn178.github.io/online-tools/base32_decode.html
只怕应用python脚本解码:

1 C:\Python27>python
2 Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32
3 Type "help", "copyright", "credits" or "license" for more information.
4 >>> import base64
5 >>> str = 'haha'
6 >>> base64.b64encode(str)
7 'aGFoYQ=='
8 >>> base64.b64decode('aGFoYQ==')
9 'haha'

 

把脚本中的b64decode换为b32decode即可完结base32的解码

0x01 Base64

0x02 希尔密码

希尔密码:密文: 22,09,00,12,03,01,10,03,04,08,01,17
(明文:wjamdbkdeibr)
解题思路:使用的矩阵是 1 2 3 4 5 6 7 8 10

百度周密:http://baike.baidu.com/link?url=R6oWhCdKvzlG8hB4hdIdUT1cZPbFOCrpU6lJAkTtdiKodD7eRTbASpd_YVfi4LMl7N8yFyhVNOz5ki6TC7_5eq

暂没找到合适的在线解密网站还是好用的本子,只可以对具体难题求解;如有好用的工具,忘不啬指教!

Base64:
ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10pNTU2NJC3ODHHYWJIZ3P4ZWY=

0x03 栅栏密码

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

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

解密程序:

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

要么采用本篇末尾提供的密码机器

Base64编码必要把贰个七位字节(3*8=24)转化为多少个八个人的字节(4*6=24),之后在伍个人的前头补三个0,形成伍人四个字节的样式。
假如剩下的字符不足一个字节,则用0填充,输出字符使用’=’,由此编码后输出的文件末尾恐怕会现出1或二个’=’

0x04 凯撒密码

凯撒密码:通过把字母移动一定的位数来完毕加密和平消除密。明文中的保有字母都在字母表上向后(或向前)根据二个永恒数目实行偏移后被替换来密文。
密文样例:U8Y]:8KdJHTXRI>XU#?!K_ecJH]kJGbRH7YJH7YSH]=93dVZ3^S8$:8″&:9U]RH;g=8Y!U92’=j$KH]ZSj&[S#!gU#*dK9.

解题思路:得知是凯撒加密之后,尝试拓展12八次轮转爆破:恐怕利用本篇末尾提供的密码机器;

lstr=”””U8Y]:8KdJHTXRI>XU#?!K_ecJH]kJGbRH7YJH7YSH]=93dVZ3^S8$:8″&:9U]RH;g=8Y!U92’=j$KH]ZSj&[S#!gU#*dK9.”””

解密脚本:

 1 for p in range(127):  
 2     str1 = '' 
 3     for i in lstr:  
 4         temp = chr((ord(i)+p)%127)  
 5         if 32<ord(temp)<127 :  
 6             str1 = str1 + temp   
 7             feel = 1 
 8          else:  
 9              feel = 0 
10              break 
11      if feel == 1:  
12          print(str1)

 

Base32:
Base32和Base64相比较只有贰个组别正是,用三贰11个字符表示2六二十个ASC字符,也等于说多少个ASC字符一组能够变动几个Base字符,反之亦然。

0x05 Unicode

看似于ASCII码的一种编码格局:(详细资料http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
密文样例:\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\

在线解密:tool.chinaz.com/Tools/Unicode.aspx

0x02 希尔密码

0x06 brainfuck

请看自己的另一篇有关Barinfuck与Ook!的博文http://www.cnblogs.com/WangAoBo/p/6373318.html

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

0x07 摩斯密码

尽管影视剧中平常见到的那种密码
密文样例:– — .-. … .

在线解密:http://www.jb51.net/tools/morse.htm
在线解密:http://www.zou114.com/mesm/

依旧应用本篇末尾提供的密码机器

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

0x08 jsfuck

恍如于brainfuck,也是一种替换密码,由( ) [ ] { } ! + 等标志组成

在线解密:http://utf-8.jp/public/jsfuck.html
在线解密:http://www.jsfuck.com/
在线解密:http://patriciopalladino.com/files/hieroglyphy/

可能直接再Chrome或许FIrefox的控制罗利运作即可解码

0x03 栅栏密码

0x09 Bacon密码

Bacon所用的密码是一种精神上用二进制数设计的。可是,他没有用普通的0和1来代表,而是选拔a和b。

百科:http://baike.baidu.com/link?url=acaeI3babB7MogPQFh98rDAVSwHfPwh-HnEFTb9cx7DZ5Nz4MkMA14H4SDjBNnOdBsJpliNYa1vnfikQGqvA7K

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

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

也是一种替换密码,替换情势如下:
365体育官网 1
还能代表成:
365体育官网 2

百度百科:http://baike.baidu.com/link?url=yN39kWG2pGd9XHo3RjeUAbd7xs0QlnJ2uHzCJfxC03V-fJcQUdfcJ-WuGoAkKGFVE0AxFK4-98wa4FtzvxRA0_

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

0x0B CRC32

密文样例:4D1FAE0B

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

 

本文持续创新,密码机器v1.0下载链接:http://pan.baidu.com/s/1hrIvpWS
密码:pdhx

 

解密程序:

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 凯撒密码

凯撒密码:通过把字母移动一定的位数来落到实处加密和解密。明文中的保有字母都在字母表上向后(或向前)根据3个原则性数目实行偏移后被替换到密文。

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

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

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

for p in range(127):

str1 = ”

for i in lstr:

temp = chr((ord(i)+p)%127)

if 32

str1 = str1 + temp

feel = 1

else:

feel = 0

break

if feel == 1:

print(str1)

0x05 Unicode

密文样例:\u5927\u5bb6\u597d\uff0c\u6211\u662f\u0040\u65e0\u6240\u4e0d\u80fd\u7684\u9b42\u5927\u4eba\uff01\u8bdd\u8bf4\u5fae\u535a\u7c89\u4e1d\u8fc7\

在线解密:tool.chinaz.com/Tools/Unicode.aspx

0x06 brainfuck

类型:

++++++++++[>+++++++>++++++++++>+++>+<<<<-]

>++.>+.+++++++..+++.>++.<<+++++++++++++++.

>.+++.——.——–.>+.>.

利用BFVM.exe直接解密

用法 loadtxt 1.txt

在线解密:http://www.splitbrain.org/services/ook

0x07 摩斯密码

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

0x08 jsfuck

密文中 ()[]{}!+

在线解密:

www.jsfuck.com

0x09 培根密码

培根所用的密码是一种精神上用二进制数设计的。可是,他从不用一般的0和1来表示,而是选拔a和b。

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

0x0B CRC32

密文样例:4D1FAE0B

import zlib

def crc32(st):

crc = zlib.crc32(st)

if crc > 0:

return “%x” % (crc)

else:

return “%x” % (~crc ^ 0xffffffff)

相关文章