CTF_crypto常見加密密文特徵

轉自個人博客:0pt1mus
我們在剛開始做CTF的crypto的題目時,常會不知道給出的加密後的字符串那種加密方式加密的,因此無法做題,會一個一個的去試,因此這篇文章總結一些常見的加密字符串的特徵,供大家查閱。

Jother編碼

它是一種運用於Javascript語言中利用少量字符構造精簡的匿名函數方法對於字符串進行的編碼方式,其中少量字符包括"[","]","{","}","(",")","!","+"。

例子:

[][(![]+[])[!![]+!![]+!![]]+({}+[])[+!![]]+(!![]+[])[+!![]]+(!![]+[])[+[]]][({}+[])[!![]+!![]+!![]+!![]+!![]]+({}+[])[+!![]]+({}[[]]+[])[+!![]]+(![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+(!![]+[])[+!![]]+({}[[]]+[])[+[]]+({}+[])[!![]+!![]+!![]+!![]+!![]]+(!![]+[])[+[]]+({}+[])[+!![]]+(!![]+[])[+!![]]]((!![]+[])[+!![]]+(!![]+[])[!![]+!![]+!![]]+(!![]+[])[+[]]+({}[[]]+[])[+[]]+(!![]+[])[+!![]]+({}[[]]+[])[+!![]]+({}+[])[!![]+!![]+!![]+!![]+!![]+!![]+!![]]+(![]+[])[!![]+!![]]+({}+[])[+!![]]+({}+[])[!![]+!![]+!![]+!![]+!![]]+(![]+[])[+!![]]+(!![]+[])[+[]]+({}[[]]+[])[!![]+!![]+!![]+!![]+!![]]+({}+[])[+!![]]+({}[[]]+[])[+!![]])()

這種題目通常直接將內榮複製到瀏覽器的console中運行即可得到flag。

ASCII編碼

常是用字符所對應的ASCII編碼的十進制表示字符,若遇到連續的一堆分割的10進制數不妨通過腳本將十進制對應的字符表示出來。

例子

84 104 101 32 113 117 105 99 107 32 98
114 111 119 110 32 102 111 120 32 106 117 109 112 115 32 111 118 101 114 32 116
104 101 32 108 97 122 121 32 100 111 103

解密腳本

o_str = '84 104 101 32 113 117 105 99 107 32 98 114 111 119 110 32 102 111 120 32 106 117 109 112 115 32 111 118 101 114 32 116 104 101 32 108 97 122 121 32 100 111 103'
o_str = o_str.split(' ')
d_str = ''
for i in o_str:
    d_str += chr(int(i))


print(d_str)

Base32/64/58編碼

base32的編碼表是由(A-Z、2-7)32個可見字符構成,“=”符號用作後綴填充。
base64的編碼表是由(A-Z、a-z、0-9、+、/)64個可見字符構成,“=”符號用作後綴填充。
base58的編碼表相比base64少了數字0,大寫字母I,O,小寫字母 l (這個是L),以及符號‘+’和‘/’

base系列的編碼,通常特徵值都是在一堆大小寫字母和數字後加1-2個等號,若無等號,只存在字母和數字,也可能是base編碼,通常是base64。

例子:

原文:you are so handsome
base64編碼:eW91IGFyZSBzbyBoYW5kc29tZQ==

rot5/13/18/47

ROT5:只對數字進行編碼,用當前數字往前數的第5個數字替換當前數字,
ROT13:只對字母進行編碼,用當前字母往前數的第13個字母替換當前字母,
ROT18:這是一個異類,本來沒有,它是將ROT5和ROT13組合在一起,將其命名爲ROT18。
ROT47:對數字、字母、常用符號進行編碼,按照它們的ASCII值進行位置替換,用當前字符ASCII值往前數的第47位對應字符替換當前字符,用於ROT47編碼的字符其ASCII值範圍是33-126。

UUencode/XXencode

這兩種編碼和base64都比較相似。

UUencode

原文:you are so handsome
UUencode編碼:3>6]U(&%R92!S;R!H86YD<V]M90``

特徵:有很多的特殊字符看見。

XXencode

原文:you are so handsome
XXencode編碼:HSKxp643mNG-nPm-cMKtYQqxhNE++

特徵:同base64特別相近。

柵欄密碼

通常這種題目會在題目描述的時候提示你是柵欄加密的。當提示我們是柵欄後,我們可以在在線的解密網站一個一個的嘗試,然後其中有意義的一組就是我們的flag。

例子

密文:felhaagv{ewtehtehfilnakgw}
當每組字數爲2時,解出:flag{wethinkwehavetheflag}

MD5加密

這種題目也是,題目描述中會給出,然後直接在線網站破解就行。

URL編碼

URL編碼後的格式是%xx,是該字符對應的ascii碼的十六進制表示的前面加%。例如:

%54%68%65%20%71%75%69%63%6b%20%62%72%6f%77%6e%20%66%6f%78%20%6a%75%6d%70%73%20%6f%76%65%72%20%74%68%65%20%6c%61%7a%79%20%64%6f%67

摩爾斯電碼

摩爾斯電碼主要是由. - 組成,每一個字符之間通常用空格來表示,如

.-.- ... .- ..- -.- -. . --. -.-- -. . -- ... .- --- ..--.. --.- -.-- -. ..- ...--- -.... .- ---. -.... ----- -.... .--- -.-- ---.. .
. ---.. ----- ----- ----. ..- ---..

通常還可能用A代替.,用B代替-

這種也是直接在網上找在線的破解工具就可以。

凱撒密碼

凱撒密碼是一種古典加密方式,是替換加密,通常明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。

這種題目,一般題目中也是有提示的,告訴你加密方式和偏移量,然後寫腳本得到flag就好。

與佛論禪

特徵:

佛曰:謹蘇那梵即俱薩怯密摩梵耶瑟帝奢諦侄即離盡諳豆慄諳佛實俱老訶漫得曳羯皤曳缽是梵菩提明怯盧切佛舍心怯世怯怛皤世智吶礙盡咒缽有蒙奢耨苦他奢槃密娑耶梵麼奢般者故皤能俱怖呼梵娑多都滅世缽提亦

遇到這樣的,直接在線解密去吧。

培根加密

看到一串的A和B,並且五個一組,那麼就是培根加密,直接在線解密。

在線加解密網站

最後,粘一些在線加解密的網站。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章