常见编码介绍

什么是密码学

CTF密码学涉及密码学算法和密码学应用,CTF密码学题目通常包括加密解密、哈希碰撞、数字签名、密码学协议等类型的题目。参赛者需要通过对密码学算法的理解和应用,以及对常见的密码学攻击手段的掌握,获取题目中隐藏的flag。CTF密码学题目不仅要求参赛者具备扎实的密码学理论知识,还要求具备良好的逻辑思维能力、分析能力和解决问题的能力。

密码学一般可分为古典密码学和现代密码学。

其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者的创造力与技巧,并没有对密码学原件进行清晰的定义。

而现代密码学则起源于20世纪末出现的大量相关理论,这些理论使得现代密码学成为了一种可以系统而严格地学习的科学。

1、加密算法:一种将明文转换为密文的数学(逻辑)运算过程。

2、对称加密算法:加密和解密使用相同的密钥的加密算法。常见的对称加密算法包括DES、3DES、AES等。

3、非对称加密算法:加密和解密使用不同密钥的加密算法。常见的非对称加密算法包括RSA、DSA等。

1、哈希算法:将任意长度的消息压缩成固定长度的摘要信息的算法,常见的哈希算法包括MD5、SHA-1等。

2、数字签名:使用私钥对消息进行加密,用公钥对加密后的消息进行解密,以验证消息的真实性和完整性。

1、密码学攻击:指攻击者利用密码学算法的弱点,从密文中推断出明文或密钥的过程。

2、密码学协议:指用于保护通信过程中信息安全的协议,常见的密码学协议包括SSL/TLS、SSH、IPsec等

常见的CTF密码学题目类型包括:加密解密、数字签名、密码学协议、哈希碰撞等

密码学解题思路

1、理解题目:仔细阅读题目描述和给出的密文、明文等信息,理解题目要求和背景。

2、分析加密算法:识别加密算法的类型,例如对称加密算法、非对称加密算法、哈希算法等。

3、寻找攻击点:根据加密算法的特点,寻找可能存在的攻击点,尝试进行破解。

4、进行攻击:根据攻击点,选择相应的攻击方法进行攻击,例如暴力破解、文档解密等。

5、获取flag:攻击成功后,获取flag并提交,确认是否正确。

ASCLL编码

标准ASCII码用一个字节(8位)表示一个字符,并规定其最高位为0,实际只用到7位,码值为00000000~01111111(二进制),即0~127(十进制)。因此可表示128个不同字符。标准ASCII码包括数字0~9、26个大写英文字母、26个小写英文字母,以及各种标点符号、运算符号和控制命令符号等。

第一题:补齐文件名

使用记事本打开文件发现了一串ascll值,将这些ascll值转换成对应的字符, 得到flag{hello,world}

89832e3c30b5462f8cb1e8a2889b43d2.png

Base64/32/16

Base64:base64是由大写字母(A-Z),小写字母(a-z),数字(0-9)以及+/组成

Base32:base32编码是由大写字母(A-Z)和数字234567组成,大于3个=号

Base16: base16就是16进制转ASCII问题base16中只有数字0-9以及大写字母ABCDEF。

base64是把3个字节变成4个可打印字节,所以base64编码后的字符串一定能被4整除。等号一定用作后缀,且数目一定是0个、1个或2个

第二题:B1

打开文件后发现了一串字符,根据字符特点猜测是base16加密(没有等号)

方法一:利用网站工具得到flag

方法二:因为base16解密就是16进制转ascll码字符问题,所以我们可以直接进行16进制转文本字符串

98ec567cd13442e7abd37ccf48ff4d46.png

 

第三题:B2

打开文件后发现了一串字符,根据字符的特点猜测是base32加密(由大写字母A-Z和数字234567组成,大于等于3个=号),利用网站工具得到flag

480ba140915c4b0aa8f9148b980e0f3c.png

 

第四题:B6

同样打开文件后发现了一串字符,根据字符的特点猜测是base64加密(结尾处有<3个=),利用网站工具的flag

8455fa89eb8d4e9e83937a3689a7cc5b.png

 

第五题:BBB

打开文件后发现了一个PNG文件但是该文件打不开,所以我们将文件扩展名改为txt就可以打开了打开之后发现是base64加密的字符串,解密后发现是是base32加密的字符串,解密后发现是base16加密的字符串,继续解密,得到flag

b204be47aa4e488f94e2fa66397b17ce.png

 

6e984725ffd14cf99063aae490bff053.png

 

ab5fc1fa007c4087b24390047acc0f1c.png

 

Quoted-Printable编码

将任何非ASCII字符的8位字节值,编码为3个字符:一个等号“=”+两个十六进制数字(0-9或A-F)表示该字节的数值。

=33---3

=41---A

=4D---M

=7C---1

第六题:QP

打开文件发现了一串字符,根据字符串的特点(一个等号“=”+两个十六进制数字(0-9或A-F))猜测为Quoted-Printable加密,找到对应的工具解得flag

055a0bbeea9d435488c6b458c0a0ee86.png

 

XXencode编码

XXencode编码它所选择的可打印字符如下:

+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz一共64个字符。跟base64打印字符相比,就是XXencode多一个“”字符,少一个”/”字符。base64不会出现“-”XXencode不会出现“/,并且不会使用“=”补位。

第七题:XX

打开文件发现了一串字符,根据字符串的特点猜测是XXencode编码加密,使用工具,解得flag

9bfd1138f29049e5b3dc3454eb833b7f.png

 

URL编码

URL编码是:使用百分号%+十六进制数字 在URL中表示特殊字符的编码方式。

空格->ASCII 字节值:32->十六进制值:20->前加%:%20

URL编码为什么用到渗透测测试里

防火墙,安全设备会拦截筛选恶意字符串,特殊符号,*#/-,sql,webshell等,当我们输入以上字符时,可能会被防火墙、安全设备所拦截,需要用到URL编码绕过防火墙和安全设备

第八题:U

打开文件后发现了一串字符,根据这个特点判断为URL编码,利用网络工具得到FLAG

74758008dc4043fd8eb3d57af0f82c74.png

 

Unicode编码

十六进制表示法:使用前缀"\u"加上四个十六进制数字来表示一个Unicode字符,例如,字母A的Unicode代码点是U+0041,可以用"\u0041"来表示。

十进制表示法:使用前缀"\u"加上一个十进制数字来表示一个Unicode字符,例如,字母A的Unicode代码点是U+0041,可以用“\u65”来表示。

字符表示法:使用字符本身来表示一个Unicode字符,例如,字母A的Unicode代码点是U+0041,可以直接使用字符"A"来表示。

第九题:icode2

打开文件后发现了一串字符,根据这个特点判断为Unicode编码,利用网络工具得到flag

8942ed176d4a48348541daca1a225d50.png

 

敲击码

先看行后看列

e9bcd27def3c425ea3adce0d93b05578.png

 

密码工具网站:

http://zfzascii.wjccx.com/(字符串与ASCII码转换工具)

http://ascii.wjccx.com/(ascll表)

www.atoolbox.net/Tool.php?Id=930(base16解密工具)

https://www.bejson.com/encrypt/base32/(base32j解密工具)

http://www.jsons.cn/base64/(base64解密工具)

http://www.metools.info/code/quotedprintable231.html( Quoted-Printable编码解码在线转换工具)

http://www.atoolbox.net/Tool.php?Id=780#google_vignette(XXEncode加密/解密)

http://www.jsons.cn/urlencode/(URL在线编码解码工具)

http://www.jsons.cn/unicode/(Unicode编码转换工具)

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值