CTF盤點(diǎn)系列——腦洞大開的編碼&加解密

前言

玩過CTF的小伙伴會(huì)經(jīng)常遇到類似這樣的問題:dalao這是啥編碼方式白茨?怎么解密岸蛋ぁ膏孟?

其實(shí)CTF中的腦洞密碼題,通常是費(fèi)現(xiàn)代加密方式拌汇,一般都是各種古典密碼的變形柒桑,一般出題者會(huì)對密文進(jìn)行一些處理,但都會(huì)留下不少線索噪舀,當(dāng)然也需要參賽者對于各種編碼方式有所了解魁淳,這樣更有利于快速入手解密飘诗,結(jié)合一定的腦洞,拿到Flag就so easy了.

編碼方式匯總

常見編碼

ASCii編碼

Base64/32/16編碼

shellcode編碼

Quoted-printable編碼

XXencode編碼

UUencode編碼

URL編碼

Unicode編碼

Escape/Unescape編碼

HTML實(shí)體編碼

Tap Code敲擊碼

Morse Code摩爾斯電碼

各種文本加密

換位加密

Rail-fence Cipher柵欄密碼

Curve Cipher曲路密碼

Columnar Transposition Cipher列位移加密

替換加密

Atbash Cipher埃特巴什碼

Caesar Cipher凱撒密碼

ROT5/13/18/47

Simple Substitution Cipher簡單換位密碼

Hill Cipher希爾密碼

Pigpen Cipher豬圈密碼

Polybius Square Cipher波利比奧斯方陣密碼

夏多密碼(曲折加密)

Playfair Cipher普萊費(fèi)爾密碼

Vigenere Cipher維吉尼亞密碼

Autokey Cipher自動(dòng)密鑰密碼

Beaufort Cipher波弗特密碼

Running Key Cipher滾動(dòng)密鑰密碼

Porta Cipher

Homophonic Substitution Cipher同音替換密碼

Affine Cipher仿射密碼

Baconian Cipher培根密碼

ADFG/VX Cipher ADFG和ADFGVX密碼

Bifid Cipher雙密碼

Trifid Cipher三分密碼

Four-Square Cipher四方密碼

Checkerboard Cipher棋盤密碼

============================

Base64

ZXZhbCgkX1BPU1RbcDRuOV96MV96aDNuOV9qMXVfU2gxX0oxM10p

NTU2NJC3ODHHYWJIZ3P4ZWY=

Base64編碼要求把3個(gè)8位字節(jié)轉(zhuǎn)化為4個(gè)6位的字節(jié)界逛,之后在6位的前面補(bǔ)兩個(gè)0昆稿,形成8位一個(gè)字節(jié)的形式。 如果剩下的字符不足3個(gè)字節(jié)仇奶,則用0填充貌嫡,輸出字符使用’=’,因此編碼后輸出的文本末尾可能會(huì)出現(xiàn)1或2個(gè)’=’

Base32

Base32和Base64相比只有一個(gè)區(qū)別就是该溯,用32個(gè)字符表示256個(gè)ASC字符岛抄,也就是說5個(gè)ASC字符一組可以生成8個(gè)Base字符,反之亦然狈茉。

在線編解碼

希爾密碼

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

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

a b c d e f g h i j k l m n o p q r s t u v w x y z

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

把字母用數(shù)字表示夫椭,解密時(shí)把數(shù)字轉(zhuǎn)換成字母,然后放入腳本氯庆,密鑰要分成矩陣蹭秋。一般是對稱的

原文鏈接

百度百科

腳本已存

柵欄密碼

把要加密的明文分成N個(gè)一組贝咙,然后把每組的第1個(gè)字連起來揭璃,形成一段無規(guī)律的話。

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

解密程序:

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]);
}

原文鏈接

在線解密

凱撒密碼

通過把字母移動(dòng)一定的位數(shù)來實(shí)現(xiàn)加密和解密灭袁。明文中的所有字母都在字母表上向后(或向前)按照一個(gè)固定數(shù)目進(jìn)行偏移后被替換成密文实昨。

常規(guī)解密:

from pycipher import Caesar
for i in range(1,27):
str=Caesar(key=i).encipher(‘UIF RVJDLCSPXOGPYKVNQTPWFSUIFMBAZEPH’)
print “mingwen:”+str.lower()+“rn“

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

解題思路:

得知是凱撒加密之后洞豁,嘗試進(jìn)行127次輪轉(zhuǎn)爆破:

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

原文鏈接

Unicode

密文樣例:u5927u5bb6u597duff0cu6211u662fu0040u65e0u6240u4e0du80fdu7684u9b42u5927u4ebauff01u8bddu8bf4u5faeu535au7c89u4e1du8fc7

在線解密

brainfuck

類型:++++++++++[>+++++++>++++++++++>+++>+<<<<-]

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

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

利用BFVM.exe直接解密

用法 loadtxt 1.txt

在線解密

摩斯密碼

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

在線解密

jsfuck

密文中 ()[]{}!+

在線解密

在線解密

如果jsfuck定義的是一個(gè)函數(shù)并且最后以()結(jié)尾,則在火狐c(diǎn)onsole中運(yùn)行時(shí)函數(shù)也會(huì)運(yùn)行荒给,就會(huì)錯(cuò)掉什么提示丈挟。這時(shí)候需要把最后的()換成.toString()

培根密碼

培根所用的密碼是一種本質(zhì)上用二進(jìn)制數(shù)設(shè)計(jì)的。不過志电,他沒有用通常的0和1來表示曙咽,而是采用a和b。

百科鏈接

已知將一個(gè)flag以一種加密形式為使用密鑰進(jìn)行加密挑辆,使用密鑰WELCOMETOCFF加密后密文為

培根密碼表看其他文件

費(fèi)娜姆密碼

異或

已知將一個(gè)flag以一種加密形式為使用密鑰進(jìn)行加密例朱,使用密鑰WELCOMETOCFF加密后密文為 00000000000000000000000000000000000

0000000000000000101110000110001000000101000000001 請分析出flag。

密鑰為12位鱼蝉,密文為84位茉继,可能是異或:

7位二進(jìn)制可能表示字母順序:

W E L C O M E T O C F F

密文

0000000 0000000 0000000 0000000 0000000 0000000 0000000 0010111 0000110 0010000 0010100 0000001

密鑰

0010111 0000101 0001100 0000011 0001111 0001101 0000101 0010100 0001111 0000011 0000110 0000110

Xor

0010111 0000101 0001100 0000011 0001111 0001101 0000101 0000011 0001001 0010011 0010010 0000111

W E L C O M E C I S R G

即:WELCOMECISRG

flag:WELCOMECISRG

豬圈密碼,又稱共濟(jì)會(huì)密碼

百度百科

CRC32

密文樣例:4D1FAE0B

import zlib

def crc32(st):

crc = zlib.crc32(st)

if crc > 0:

return “%x” % (crc)

else:

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

原文鏈接

顏文字加密(aaencode)

這個(gè)好萌啊>.<

顏文字js加密:明文alert(“flag”);

密文:?ω??= /`m′)? ~┻━┻ //′?`/ [‘’]; o=(???) ==3; c=(?Θ?) =(???)-(???); (?Д?) =(?Θ?)= (o_o)/ (o_o);(?Д?)={?Θ?: ‘’ ,?ω?? : ((?ω??==3) +’’) [?Θ?] ,???? :(?ω??+ ‘’)[o^^o -(?Θ?)] ,?Д??:((???==3) +’’)[???] }; (?Д?) [?Θ?] =((?ω??==3) +’’) [c language=”_o”][/c];(?Д?) [‘c’] = ((?Д?)+’’) [ (???)+(???)-(?Θ?) ];(?Д?) [‘o’] = ((?Д?)+’’) [?Θ?];(?o?)=(?Д?) [‘c’]+(?Д?) [‘o’]+(?ω?? +’’)[?Θ?]+ ((?ω??==3) +’’) [???] + ((?Д?) +’’) [(???)+(???)]+ ((???==3) +’’) [?Θ?]+((???==3) +’’) [(???) – (?Θ?)]+(?Д?) [‘c’]+((?Д?)+’’) [(???)+(???)]+ (?Д?) [‘o’]+((???==3) +’’) [?Θ?];(?Д?) [‘’] =(o_o) [?o?] [?o?];(?ε?)=((???==3) +’’) [?Θ?]+ (?Д?) .?Д??+((?Д?)+’’) [(???) + (???)]+((???==3) +’’) [o^^o -?Θ?]+((???==3) +’’) [?Θ?]+ (?ω?? +’’) [?Θ?]; (???)+=(?Θ?); (?Д?)[?ε?]=’\’; (?Д?).?Θ??=(?Д?+ ???)[o_o -(?Θ?)];(o???o)=(?ω?? +’’)[c language=”^^o”][/c];(?Д?) [?o?]='”‘;(?Д?) [‘’] ( (?Д?) [‘’] (?ε?+(?Д?)[?o?]+ (?Д?)[?ε?]+(?Θ?)+ (???)+ (?Θ?)+ (?Д?)[?ε?]+(?Θ?)+ ((???) + (?Θ?))+ (???)+ (?Д?)[?ε?]+(?Θ?)+ (???)+ ((???) + (?Θ?))+ (?Д?)[?ε?]+(?Θ?)+ ((o_o) +(o_o))+ ((o_o) – (?Θ?))+ (?Д?)[?ε?]+(?Θ?)+ ((o_o) +(o_o))+ (???)+ (?Д?)[?ε?]+((???) + (?Θ?))+ (c_o)+ (?Д?)[?ε?]+(???)+ ((o_o) – (?Θ?))+ (?Д?)[?ε?]+(?Θ?)+ (???)+ ((o_o) +(o_o))+ (?Д?)[?ε?]+(?Θ?)+ ((???) + (?Θ?))+ (???)+ (?Д?)[?ε?]+(?Θ?)+ (???)+ (?Θ?)+ (?Д?)[?ε?]+(?Θ?)+ (???)+ ((???) + (o_o))+ (?Д?)[?ε?]+(???)+ ((o_o) – (?Θ?))+ (?Д?)[?ε?]+((???) + (?Θ?))+ (?Θ?)+ (?Д?)[?ε?]+((???) + (o_o))+ (o_o)+ (?Д?)[?o?]) (?Θ?)) (‘_’);

在線解密

Jjencode

密文:$=~[];$={:++$,$$$$:(![]+””)[$],$:++$,$$:(![]+””)[$],$:++$,$$$:({}+””)[$],$$$:($[$]+””)[$],$$:++$,$$$:(!””+””)[$],$:++$,$$:++$,$$:({}+””)[$],$$:++$,$$$:++$,$:++$,$$:++$};$.$=($.$=$+””)[$.$$]+($.$=$.$[$.$])+($.$$=($.$+””)[$.$])+((!$)+””)[$.$$]+($.=$.$[$.$$])+($.$=(!””+””)[$.$])+($.=(!””+””)[$.$])+$.$[$.$$]+$.+$.$+$.$;$.$$=$.$+(!””+””)[$.$$]+$.+$.+$.$+$.$$;$.$=($.)[$.$][$.$];$.$($.$($.$$+”””+$.$$+(![]+””)[$.$]+$.$$$+”\”+$.$+$.$$+$.$+$.+”(\”\”+$.$+$.$+$.+$.$$$+(![]+””)[$.$]+(![]+””)[$.$]+$.$+”,\”+$.$+$.+”\”+$.$+$.$+$.$+$.$$+”\”+$.$+$.$$+$.$$+$.$$+”\”+$.$+$.$+$.$$+$.$$+”\”+$.$+$.$$+$.$+”\”+$.$+$.$$+$.$+”\”+$.$+$.$$+$.+$.+”\”\”+$.$+$._+”)”+”””)())();

解密地址

無字母加密

<?php

@$_++; // $_ = 1

$__=(“#”^”|”); // $__ = _

$__.=(“.”^”~”); // _P

$__.=(“/”^”`”); // _PO

$__.=(“|”^”/”); // _POS

$__.=(“{“^”/”); // _POST

${$__}[!$_](${$__}[$_]); // $_POST[0]($_POST[1]);

?>

在線解密

Utf-7編解碼

原文:gdfgdfg

密文:+AGcAZABmAGcAZABmAGc-

無論何種蚀乔,都是+開頭-結(jié)尾

在線解密

云影密碼

如果密碼只有01248組成。菲茬。吉挣。

原理很簡單派撕,有了1,2睬魂,4终吼,8這四個(gè)簡單的數(shù)字,你可以以加法表示出0-9任何一個(gè)數(shù)字氯哮,例如0=28际跪,7=124,9=18喉钢。

這樣姆打,再用1-26來表示A-Z,就可以用作密碼了肠虽。

為了不至于混亂幔戏,我個(gè)人引入了第五個(gè)數(shù)字0,來用作間隔税课,以避免翻譯錯(cuò)誤闲延,所以還可以稱“01248密碼”。

題目:12401011801180212011401804

第一步韩玩,分割垒玲,即124 1 118 118 212 114 18 4

第二步,基本翻譯找颓,例如124可以表示7合愈,也可以表示16(但不可能是34,因?yàn)椴粫?huì)超過26)叮雳,所以可以放在一邊想暗,翻譯其他沒有異議的,可得:124 a s s w o 18 d

第三步帘不,推測得出明文说莫。可以推測后面的18表示r寞焙,前面的為p最合適储狭。

明文:password(密碼).

RC4

key welcometoicqedu

密文UUyFTj8PCzF6geFn6xgBOYSvVTrbpNU4OF9db9wMcPD1yDbaJw==

用腳本解密 腳本已存

曼徹斯特

轉(zhuǎn)二進(jìn)制 不是10就是01 即是曼徹斯特 解密看腳本

對于其他一些未知密文,可嘗試到下列幾個(gè)網(wǎng)站轉(zhuǎn)換試試捣郊,看看運(yùn)氣

在線解密

在線解密

在線解密

其他小技巧:

  • 如果密文是十進(jìn)制辽狈,字符范圍為“0-9”,可以猜測是ASCII編碼呛牲;

  • 如果密文由“a-z”“A-Z”和“=”構(gòu)成刮萌,特別是末尾有“=”,那么可以判斷為Base64編碼娘扩;

  • 如果密文含有“%” 着茸,形式為 “%xx” 和 “%uxxxx”壮锻,字符范圍又是十六進(jìn)制“0-F”,判斷是escape() 函數(shù)編碼涮阔,用unescape()解碼猜绣;

  • 若密文由“[],()敬特,{}掰邢,+,!”字符組成的編碼通常就通過Jother解密伟阔。

判斷出可能的編碼方式辣之,就可以使用程序或工具進(jìn)行解密。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末减俏,一起剝皮案震驚了整個(gè)濱河市召烂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娃承,老刑警劉巖奏夫,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異历筝,居然都是意外死亡酗昼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門梳猪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麻削,“玉大人,你說我怎么就攤上這事春弥∏河矗” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵匿沛,是天一觀的道長扫责。 經(jīng)常有香客問我,道長逃呼,這世上最難降的妖魔是什么鳖孤? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮抡笼,結(jié)果婚禮上苏揣,老公的妹妹穿的比我還像新娘。我一直安慰自己推姻,他們只是感情好平匈,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般吐葱。 火紅的嫁衣襯著肌膚如雪街望。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天弟跑,我揣著相機(jī)與錄音,去河邊找鬼防症。 笑死孟辑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔫敲。 我是一名探鬼主播饲嗽,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奈嘿!你這毒婦竟也來了貌虾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤裙犹,失蹤者是張志新(化名)和其女友劉穎尽狠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叶圃,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡袄膏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掺冠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沉馆。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖德崭,靈堂內(nèi)的尸體忽然破棺而出斥黑,到底是詐尸還是另有隱情,我是刑警寧澤眉厨,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布锌奴,位于F島的核電站,受9級特大地震影響缺猛,放射性物質(zhì)發(fā)生泄漏缨叫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一荔燎、第九天 我趴在偏房一處隱蔽的房頂上張望耻姥。 院中可真熱鬧,春花似錦有咨、人聲如沸琐簇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婉商。三九已至似忧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丈秩,已是汗流浹背盯捌。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蘑秽,地道東北人饺著。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像肠牲,于是被迫代替她去往敵國和親幼衰。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 0x01 目錄 常見編碼: ASCII編碼 Base64/32/16編碼 shellcode編碼 Quoted-p...
    H0f_9閱讀 12,653評論 2 17
  • CTF中那些腦洞大開的編碼和加密 0x00 前言 正文開始之前先閑扯幾句吧缀雳,玩CTF的小伙伴也許會(huì)遇到類似這樣的問...
    查無此人asdasd閱讀 5,973評論 0 19
  • 本文主要介紹移動(dòng)端的加解密算法的分類渡嚣、其優(yōu)缺點(diǎn)特性及應(yīng)用,幫助讀者由淺入深地了解和選擇加解密算法肥印。文中會(huì)包含算法的...
    蘋果粉閱讀 11,459評論 5 29
  • 概述 之前一直對加密相關(guān)的算法知之甚少识椰,只知道類似DES、RSA等加密算法能對數(shù)據(jù)傳輸進(jìn)行加密竖独,且各種加密算法各有...
    Henryzhu閱讀 3,008評論 0 14
  • 一裤唠、自定義控件 1. 尺寸單位單位 dp:當(dāng)使用dp時(shí),不同像素密度的手機(jī)上能顯示基本相同的長度莹痢,一般而言种蘸,非文字...
    ezero閱讀 189評論 0 0