Misc中各种加密特征

Posted on 2020-01-23,4 min read

Base64

由A-Za-z0-9+/==组成的64个字符。通常末尾有==的就是Base64
Base64:SSBsb3ZlIHlvde+8gQ==

Base32

由A-Z和2-7组成的32个字符。通常末尾有===为Base32
Base32:JEQGY33WMUQHS33V566IC===

Base16

由0-9和0A-F组成的16个字符。实质就是16进制的字符串。
Base16:49206c6f766520796f75efbc81

以下是我的一个识别多次Base加密的脚本。用于加密了N次的Base字符串

import base64
flag='56477457566B31464E56565756455A4F5A57744664315673556C5A4E52545656566C524F55464A47536B5A55616B4A47545555315656525961453953566B563456477453566B31564D545A5256454A54566B5A5664315273556C5A4E4D555A565657745754303146565868555633425354577331526C5A55516B3953526C593056466877536B3147536B566152557050556C5A46656C527563464E53617A5646566C5247546C5A464D545A5562464A475456553152565A55526B356C6132743356577853556B31464E5556684D33424F556B5A574E565272556C4A4E617A56465656687354314A575658645562464A575A5555784E6C5255526B3557526C563356477853536B31464E5656566131704F5A57744664315273556B356C525456475656524B556C5A47566A52555748424754555A4B56565655526B3957526C593256465A5355314A724E56565656455A4F566B55784E465272566C4A4E4D555A5656565247546D567252586855563342575455553156564A5963453553526B704856477853556B31564E56566152557050556C5A46656C5657556C5A6C565456465631524355315A475658645562464A475A57737856565672576B3957526B563556477453556D56564E555A5756454A50566B5A574E4652596345354E56544656566C524354315A47565870554D464A54556C553064314A55516B35575254457A56477853536B31564E5556575747684F5A57744664315673556C4A4E525456795531524F556C5A47536B5A5561314A535456553156566C36566B3953566C563456477453566D56464D545A5356454A54556B5A7751315273556B5A6C617A46785657746154314A475658685562464A4F5A555531526C5A55516B3953526C563456466877566B3147536B566152557050556B56574E6C5256556C5A6C565456565656524B54314A47526A565561315A575456553152565655566B356C6130563356577853613146724E56565456454A505957784B52315273556C4A4E565456565646686B54314A575658685561314A54556C55314E6C6C36516C4E57526B563456477853566D56724D55565661317050556B5A4665465273556D704F52545647566C524F556C5A4763455255574842435456557863565A55516B3957525659325646565355314A724E584A535645704F5A57315351315272566C4A4E52545646566C687354314A475658645662464A575455553156564A5963453553526C593156477453556B3147536B565A656B3550556C5A5664315273556C5A4E56544532556C524355315A475258645562464A575454413552565672566B394E5256563356465A53546D51774E56565456454A50556B5A566546525963454A4E526B7056566C524354314A4864445A5556564A54556D733064314A55526B35686245563556477457566B31464E5556575747684F5A5774466431567463465A4E525456475656524F55464A47536B645562464A53545555315656525961453953566C563356477453566B31564E545A61656B4A54556B645351315272566C4A6C617A4646566C687354315A4752586855566C4A4F5A444131526C5A55516B3953526E424556466877546B31564D56565756454A50566B56726431527463464E53617A56795531524354315A464D54525561315A5754565531525664596345356C6245563356577853556B31564E56565356453553566B5A4B526C5272556C4A4E565456565758705354314A57566A5A5556564A53545655784E6C4A55516C4E53526E424456477853526D56724D55565661317050556B5A5665465273556B356B4D445647566C524754314A47566A565561314A5754555A4B52567046536B39535256593256465A5355314A564E56565656454A54566B5A4665413D3D'
#密文
base32='abcdefghijkmnlopqrstuvwxyz0189+/'
base16='GHIJKMNLOPQRSTUVWXYZabcdefghijkmnlopqrstvuwxyz+/'
def check(flag):                #识别base类型
    for i in base16:
        if i in flag:
            for b in base32:
                if b in flag:
                    return 64
                    exit(0)
                return 32
                break
        return 16
        exit(0)
for i in range(20):                 #20取决于加密了多少次。可以设大点
    num=check(flag)
    if num==16:
        print('16:'+flag)
        try:
            flag=base64.b16decode(flag)
        except:
            flag=base64.b64decode(flag)
        flag=flag.decode()
    elif num==32:
        print('32:'+flag)
        try:
            flag=base64.b32decode(flag)
        except:
            flag=base64.b64decode(flag)
        flag=flag.decode()
    else:
        print('64:'+flag)
        flag=base64.b64decode(flag)
        flag=flag.decode()
print(flag)

培根密码

通常由ab组成
解密网址:https://tool.bugku.com/peigen/

UUencode

UUencode编码将二进制文件转换为文本文件。通常用于e-mail传输
对于长消息来说。每行开头都是M。这算一个特征
但是对于短消息。特征就是字符串把。有'($<>)这类字符

解密网址:https://www.qqxiuzi.cn/bianma/uuencode.php

Rot13

Rot13主要是将当前字母替换为13位后的字母。超过就从26个字母开头继续。然后依次替代
特征:只会将字母替换。flag的标签并没有替换

Rot5

只对标点进行加密

Rot18

对数字。字母进行加密

Rot47

对数字。字母。标点进行加密

解密网址:https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php

MD5

特征:32位小写字母+数字
当然还有16位的MD5。和16进制差不多。
解密网址:https://www.somd5.com/

SHA1

特征:40位小写字母+数字
解密网址:https://www.somd5.com/

栅栏密码

特征:字符串中。包含了flag{}等标志。只是每一位都换了位置

解密网址:https://www.qqxiuzi.cn/bianma/zhalanmima.php

凯撒密码

特征:和ROT13差不多。只会将字母加密。不过ROT13移13位。而凯撒密码可以自定义移位

解密网址:https://www.qqxiuzi.cn/bianma/kaisamima.php

维吉尼亚密码

在凯撒密码的基础上扩展的。维吉尼亚密码需要一个密钥。根据密钥来决定哪一行的密表进行替换

解密网址:https://www.qqxiuzi.cn/bianma/weijiniyamima.php

猪圈密码

特征:如下的几种图形。对应的字符

解密网址:http://www.nicetool.net/app/pigpen_chiper_decrypt.html

rabbit加密

特征:U2Fsd开头。乍一眼看像是Base64

解密网址:https://www.sojson.com/encrypt_rabbit.html

OOK编码

特征:OOK?.

解密网址:https://www.splitbrain.org/services/ook

JSFUCK

特征:组成。可以直接控制台运行

解密网址:http://www.jsfuck.com/

当铺密码

特征:王夫 井工 夫口 由中人 井中 夫夫 由中大

解密网址:http://www.zjslove.com/3.decode/dangpu/index.html

键盘密码(qwe密码)

一开始的键盘并不是QWERTYU这样排列。是ABCDEFG这样排列的。
特征:flag对应的是ysqu

解密网址:http://www.zjslove.com/3.decode/qwe/index.html

摩斯密码

特征:.-组成

解密网址:https://www.jb51.net/tools/morse.htm

摩斯电码

特征: .-/组成

解密网址:https://tool.lu/morse/

敲击码


特征:由。空格组成。或者由数字组成。但数字不超过5

解密网址:http://ctf.ssleye.com/tapcode.html

AES

特征:和Base64差不多。但是需要密钥和IV向量

解密网址:http://tools.bugscaner.com/cryptoaes/

银河密码

圣堂武士密码

这里由猪圈密码变异的

下一篇: CORS跨域漏洞的学习→