• 那些年做过的ctf之加密篇(加强版)


    MarkdownPad Document

    那些年做过的ctf之加密篇(加强版)

    大部分转自WooYun知识库,加入了笔者自己的理解

    0x01 Base64

    Base64: ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10pNTU2NJC3ODHHYWJIZ3P4ZWY=

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

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

    base64在线编解码:http://base64.xpcha.com/
    base32在线解码(需翻墙):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的解码

    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

    暂没找到合适的在线解密网站或者好用的脚本,只能对具体问题求解;如有好用的工具,忘不啬指教!

    0x03 栅栏密码

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

    密文样例: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 }

    或者利用本篇末尾提供的密码机器

    0x04 凯撒密码

    凯撒密码:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
    密文样例:U8Y]:8KdJHTXRI>XU#?!K_ecJH]kJGbRH7YJH7YSH]=93dVZ3^S8$:8"&:9U]RH;g=8Y!U92'=j$KH]ZSj&[S#!gU#*dK9.

    解题思路:得知是凯撒加密之后,尝试进行127次轮转爆破:或者利用本篇末尾提供的密码机器;

    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)

    0x05 Unicode

    类似于ASCII码的一种编码方式:(详细资料http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
    密文样例:u5927u5bb6u597duff0cu6211u662fu0040u65e0u6240u4e0du80fdu7684u9b42u5927u4ebauff01u8bddu8bf4u5faeu535au7c89u4e1du8fc7

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

    0x06 brainfuck

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

    0x07 摩斯密码

    就是影视剧中经常见到的那种密码
    密文样例:-- --- .-. ... .

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

    或者利用本篇末尾提供的密码机器

    0x08 jsfuck

    类似于brainfuck,也是一种替换密码,由( ) [ ] { } ! + 等符号组成

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

    或者直接再Chrome或者FIrefox的控制台中运行即可解码

    0x09 培根密码

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

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

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

    也是一种替换密码,替换方式如下:

    或者可以表示成:

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

    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

  • 相关阅读:
    Openstack CloudKitty 计量计费命令行操作
    $out表单提交转成数组
    AddWhere
    正则
    全选反选
    showErr()
    模拟登陆
    MYSQL添加权限
    三元相位符
    打开ci 调试
  • 原文地址:https://www.cnblogs.com/WangAoBo/p/6412072.html
Copyright © 2020-2023  润新知