ctf常见编码形式(罗师傅)
•ASCII编码⼤致可以分作三部分组成:
•第⼀部分是:ASCII⾮打印控制字符(参详ASCII码表中0-31);
•第⼆部分是:ASCII打印字符,也就是CTF中常⽤到的转换;
•第三部分是:扩展ASCII打印字符(第⼀第三部分详见 ASCII码表解释)。
•源⽂本:
The quick brown fox jumps over the lazy dog
ASCII编码对应⼗进制:
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
ASCII对应表
Base64/32/16编码
•base64、base32、base16可以分别编码转化8位字节为6位、5位、4位。16,32,64分别表⽰⽤多少个字符来编码,这⾥我注重介绍
base64。Base64常⽤于在通常处理⽂本数据的场合,表⽰、传输、存储⼀些⼆进制数据。包括MIME的email,email via MIME,在XML中
存储复杂数据。
•i love CTF
•aSBsb3ZlIENURg==
•重要特征,⼤部分base64后⾯有1-2个等号
原因:
• Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前⾯补两个0,形成8位⼀个字节的形式。
如果剩下的字符不⾜3个字节,则⽤0填充,输出字符使⽤’=’,因此编码后输出的⽂本末尾可能会出现1或2个’=’。
URL编码
•url编码⼜叫百分号编码,是统⼀资源定位(URL)编码⽅式。URL地址(常说⽹址)规定了常⽤地数字,字母可以直接使⽤,另外⼀批作为
特殊⽤户字符也可以直接⽤(/,:@等),剩下的其它所有字符必须通过%xx编码处理。
现在已经成为⼀种规范了,基本所有程序语⾔都有这种编码,
•编码⽅法很简单,在该字节ascii码的的16进制字符前⾯加%. 如
空格字符,ascii码是32,对应16进制是’20’,那么urlencode编码结果是:%20。
•源⽂本:
The
quick brown fox jumps over the lazy dog
•编码后:
•%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%6 MD5
•Message
Digest Algorithm MD5(中⽂名为消息摘要算法第五版)为计算机安全领域⼴泛使⽤的⼀种散列函数,⽤以提供消息的完整性保护
•结果都是⼀个定长:16 、32、64。
•MD5在线url网址编码解码
(“message digest”) = f96b697d7cb7938d525a2f31aaf161d0
莫尔斯电码
•摩尔斯电码(Morse Code)是由美国⼈萨缪尔·摩尔斯在1836年发明的⼀种时通时断的且通过不同的排列顺序来表达不同英⽂字母、数字和
标点符号的信号代码,摩尔斯电码主要由以下5种它的代码组成:
•点(.)
•划(-)
•每个字符间短的停顿(通常⽤空格表⽰停顿)
•每个词之间中等的停顿(通常⽤
/ 划分)
•以及句⼦之间长的停顿
在线解码:Morse Code
栅栏密码
•栅栏密码(Rail-fence Cipher)就是把要加密的明⽂分成N个⼀组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后⼀个
分组可能不⾜N个)个字符组合,最后把他们全部连接起来就是密⽂,这⾥以2栏栅栏加密为例。
•明⽂:
The quick brown fox jumps over the lazy dog
•去空格:
Thequickbrownfoxjumpsoverthelazydog
•分组:
Th eq ui ck br ow nf ox ju mp so ve rt he la zy
do g
•第⼀组:
Teucbonojmsvrhlzdg
•第⼆组:
hqikrwfxupoeteayo
•密⽂:
Teucbonojmsvrhlzdghqikrwfxupoeteayo
凯撒密码
•凯撒密码(Caesar Cipher或称恺撒加密、恺撒变换、变换加密、位移加密)是⼀种替换加密,明⽂中的所有字母都在字母表上向后(或向
前)按照⼀个固定数⽬进⾏偏移后被替换成密⽂。例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推
•加密实例:
明⽂: The quick brown fox jumps over the lazy dog
偏移量:1
偏移量:1
密⽂: Uif rvjdl cspxo gpy kvnqt pwfs uif mbaz eph
•(其实就是特殊的凯撒密码)
•ROT5/13/18/47是⼀种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以⾃我解密,主要⽤
于应对快速浏览,或者是机器的读取。
•ROT5
是 rotate by 5 places 的简写,意思是旋转5个位置,其它皆同。下⾯分别说说它们的编码⽅式:
•ROT5:只对数字进⾏编码,⽤当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。
•ROT13:只对字母进⾏编码,⽤当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。
•ROT18:这是⼀个异类,本来没有,它是将ROT5和ROT13组合在⼀起,为了好称呼,将其命名为ROT18。
•ROT47:对数字、字母、常⽤符号进⾏编码,按照它们的ASCII值进⾏位置替换,⽤当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为⼩写字母z,编码后变成⼤写字母K,当前为数字0,编码后变成符号_。⽤于ROT47编码的字符其ASCII值范围是33-126,具体可参考ASCII编码,下⾯以rot13以例。
•明⽂:
the quick brown fox jumps over the lazy dog
•密⽂:
gur dhvpx oebja sbk whzcf bire gur ynml qbt
简单替换密码
•简单换位密码(Simple Substitution Cipher)加密⽅式是以每个明⽂字母被与之唯⼀对应且不同的字母替换的⽅式实现的,它不同于恺撒密码,因为密码字母表的字母不是简单的移位,⽽是完全是混乱的。
⽐如:
•明⽂字母
abcdefghijklmnopqrstuvwxyz
•密⽂⽂字母
phqgiumeaylnofdxjkrcvstzwb
•明⽂:
the quick brown fox jumps over the lazy dog
•密⽂:
cei jvaql hkdtf udz yvoxr dsik cei npbw gdm
猪圈密码
•猪圈密码(Pigpen Cipher或称九宫格密码、朱⾼密码、共济会密码或共济会员密码),是⼀种以格⼦为基础的简单替代式密码。
•明⽂字母和对应密⽂:
•明⽂:
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
•密⽂:
jjencode/aaencode
jjencode将JS代码转换成只有符号的字符串,类似于rrencode,介绍的 PPT ,aaencode可以将JS代码转换成常⽤的⽹络表情,也就是我们说的颜⽂字js加密。
•jjencode/aaencode的解密直接在浏览器的控制台⾥输⼊密⽂即可执⾏解密。
Jsfuck/jother
brainfuck
•Brainfuck是⼀种极⼩化的计算机语⾔,按照"Turing complete(完整图灵机)"思想设计的语⾔,它的主要设计思路是:⽤最⼩的概念实现⼀种“简单”的语⾔,BrainF**k
语⾔只有⼋种符号,所有的操作都由这⼋种符号( > < + - . , [ ] )的组合来完成。
•hello!
•#!shell
•+++++
+++++ [->++ +++++ +++<] >++++ .—. +++++ ++…+ ++.<+ +++++ +++++
•[->++
+++++ ++++< ]>+++ ++++. <++++ +++[- >---- —<] >–.<
+++++ ++[->
•-----
–<]> ----- ----- .<
在线⼯具:Brainfuck/Ook! Obfuscation/Encoding

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。