CTF中那些脑洞大开的编码和加密.docx
《CTF中那些脑洞大开的编码和加密.docx》由会员分享,可在线阅读,更多相关《CTF中那些脑洞大开的编码和加密.docx(74页珍藏版)》请在课桌文档上搜索。
1、CTF中那些脑洞大开的编码和加密OxOO前言正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表母,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进行一些处理,但是会给留一些线索,所以写此文的目的是想给小伙伴做题时给一些参考,当然常在CTF里出现的编码也可以了解一下。本来是想尽快写出参考的文章,无奈期间被各种事情耽搁导致文章断断续续写了2个月,文章肯定有许多没仃提及到,欢迎小伙伴补充,总之,希望对小伙伴们有帮助吧!最后欢迎小伙伴来博7V(https:/www.hackfun.org/)1.jt!:P(ps::1.1
2、.J,j文足是川markdown,而论坛编辑器不支持markdOWn语法,虽然我已经尽力去调照对其字符,可是效果还是不尽人意,如果影响阅读理解可以去博客阅读:P)0x01目录常见编码:ASCII编码2.Base643216编码3.she1.1.code编码4 .Quoted-printab1.e编码5 .XXencode编码6 .UUencode编码ZUR1.编码8 .Unicode559 .EscapeZUnescape编码10 .HTM1.实体编码11 .敲击码(TaPcode)12 .莫尔斯电码(MorSeCode)13 .编码的故事各种文本加密换位加密:1 .栅栏密码(RaiHenCe
3、Cipher)2 .曲路密码(CUrVeCipher)3 .列移位密码(Co1.UmnarTranspositionCipher)替换加密:1 .埃特巴什码(AtbaShCipher)2 .凯撒密码(CaeSarCipher)3.ROT51318474 .简单换位密码(SimP1.eSubstitutionCipher)5 .希尔密码(HiHCipher)6 .猪圈密码(PigPenCipher)7 .波利比奥斯方阵密码(Po1.ybiUSSquareCipher)8 .更多密码(曲折加密)9 .普莱菲尔密码(PIayfairCipher)10 .维吉尼亚密码(VigenjreCipher)1
4、1 .S动密钥密码(AUtOkeyCipher)12 .博福特密码(BeaUfor1.Cipher)13 .滚动密钥密码(RUnningKeyCipher)14 .Porta密码(PortaCipher)15 .同音替换密码(HOmOPhOniCSubstitutionCipher)16 .仿射密码(AffineCipher)17 .培根密码(BaConianCipher)18 .ADFGX和ADFGVX密码(ADFGXCipher)19 .双密码(BifidCipher)20 .三分密码(TrifidCipher)21 .四方密码(FOUr-SqUareCipher)22 .棋t密码I:Ch
5、eckerboardCipher)23 .跨棋盘密码(StraddIeCheckerboardCipher)24 .分组摩尔斯替换密码(FraCtiOna1.edMorseCipher)25 .Bazeries密码(BaZerieSCipher)26 .Digrafid密码(DigrafidCipher)27 .格明普市密码(GrandPr6Cipher)28 .比尔密码(Beaieciphers)29 .键盘密码(KeybOardCipher)其他仃趣的机械密码:1 .恩尼格玛密码代码混淆加密:1.asp混淆加密2 .php混清加密3 .cssjs混淆加密4.VBScript.Encode混
6、淆加密5.ppencode6.rrencode7.jjencodeaancod8.JSfuck9.jother1(Kbrainfuck编程语占相关工具参考网站彩蛋0x02正文常见编码1.ASC1.1.编码ASCI1.编制大致可以分作:部分组成:第一部分是:ASCI1.非打印控制字符(参详ASC1.1.码表中0-31);第二部分是:ASCI1.打印字符,也就是CTF中常用到的转换;IifiM00000000010000000120000001030000001140000010050000010160000O1.1.O700000111000010009000010011000001010n00
7、00ion12000011001300001101140000X1.1.O150000I1.1.1.160001000017-000100011800010010190001oon20000101002100010101220001011023000101112400011000250001:0012600011010270001101128000111002900011101300001mo234S67S9O1234S6789O123456789O123333333344444444445555555555666二1.-I:二-二二-二一一一一二1.-二二二一-黑soheEEOTENQ然普鲁
8、二8BDC1DC2DC3DC43黑然蓝U-三Mb三M-MfM00100000建格】64O1.OO0000960010OOOXt65O1.OOOOO1.A970010001066O1.OOOO1.OB0010001XC7O1.OOOO1.1.C00100100$68O1.OOO1.OOD10000100101%69O1.OOO1.O1.E10100100110470O1.OO01X0F1020010011171O1.OOO1.1.1.G10300101000(7iO1.OO100OH10400101001)73O1.OO1001Z10500101010*74O1.OO1010J106001010
9、1175O1.OOIO1.1.KX070010110076O1.OO11001.100010110177O1.OOI1.O1.M*09001011107O1.OOI1.1.ON_1100010I1.1.1./79O1.OOI1.1.1.O1110011000000O1.O1.0000p1120011000111O1.O1.OOO1.Q中00110010282O1.O1.OO1.OR1140011001133O1.OXOOUS11500110100464O1.O1.O1.OOT1160011010155O1.O1.O1.O1.U117001101106O1.OXO1.1.OVU800110111
10、77O1.O1.O1.1.1.W11900111000888O1.O1.1000X12000111001969O1.O1.1001Y12100111010.0O1.O1.1010Z12200111011*1O1.O1.IO1.1.1230011110094O1.O1.1110A1250101I1.1.1.-三0110C0110CO1.1.OC0110CO1.1.CC0110C0110C0110C01101011010110】O1.1.O】0110I011010110101101OUXCO1.1.1.CO1.1.1.COU1.CO1.1.1.CO1.1.1.CO1.UCO1.1.1.CO1.1.
11、1.1omO1.1.1.二O1.1.1.IO1.1.1.1O1.1.1.1O1.1.1.131OOO1.I1.1.1.US630011I1.1.1.第三部分是:扩展ASCII打印字符(第一第三部分详见ASCII码&(httpW)耨择),编码转换示例源文本:Thequickbrownfoxjumpsoverthe1.azydogWJJ1.byq1244(hWI1.htqudbS272ff7ngatt6ffm3B75Wt70%7n20Xff76K72*2074t885*20X6Ctt1VAVn2OS4UFXS7SQC.En:73002004006F006700HH0646K207175696368
12、2062726F77206UF78206A75CD7073206F7CS572207468652(KC617逐朦A7320646F7841041C1132n3117105tt107329811411111911032102111120321061171081121个建.MO5.32:X107DX3T2Be68268081D3542M1X6MD5.16:372BB68268D8W之上4JBe64:MGM(XJGZeCBW1weQnWHRQZSBsgSGRvZi47SBte64:T号号CSMOCASCH编码对应十进制:84104IO1.32113117105991073298114I1.1.119
13、11032102I1.1.1203210611710911211532I1.1.11810111432116104IO1.321089712212132100I1.1.103对应可以转换成二进制,八进制,十六进制等。2.Base64,3216编码base64、base32,base16可以分别编码转化8位字节为6位、5位、4位。16,32.64分别表示用多少个字符来编码,这里我注重介绍base640Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。包括MIME的emai1.,emai1.viaM1.ME,在XM1.中存储复杂数据。编码原理:Base64编码要求把3个8
14、位字节.转化为4个6位的字节,之后在6位的前面补两个0,形成8位个字节的形式,6位2进制能表示的最大数是2的6次方是64.这也是为什么是64个字符(A-Z,a-z,0-9.+./这64个编码字符,=号不属编码字符,而是填充字符)的原因,这样就需要一张映射表,加下:TBase64A1.phabetVa1.ueEncodingVa1.ueEncodingVa1.ueEncodingVa1.ueEncoding0A11R34i51z1B18S35j5202C19T36k5313D20U3715424E21V38a5535F22W39n5646G23X40o5757H24Y41P5868I25Z42q
15、5979J26a4360810K27b44s619111.28c45t62w*Z712M29d46u3i13N3047v14031f48w-15P32g49xy16Q33h50yT号号CS20G举个例子(base64):源文本:The对应ascii码:841041018位binary:0101010001101000011001016位binary:010101000110100001100101 高位补0:OOOO1O1O1000001100010000100100101 对应ascii码:2163337 查表:VGh1.利用Pythonbase64模块,我们分别可以这样加密解密base64
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CTF 那些 脑洞大开 编码 加密

链接地址:https://www.desk33.com/p-1517381.html