网安引领时代,弥天点亮未来

实验室最近在进行靶场渗透测试,在靶场攻击寻找flag过程中,不同靶场涉及不同加密类型,虽然对常见加密类型了解过,但没有深入研究过,因此通过这篇文章记录下学习心得。

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
密文字符串的长度特征为4的整数倍。字符串的符号取值只能在A-Z, a-z, 0-9, +, /, =共计65个字符中,且=如果出现就必须在结尾出现。
如果要编码的字节数不能被3整除,最后会多出1个或2个字节,先使用0字节值在末尾补足,使其能够被3整除,然后再进行base64的编码。在编码后的base64文本后加上一个或两个“=”号,代表补足的字节数。
下面为转化过程:
可以使用下面网站实现解密:
https://emn178.github.io/online-tools/base64_decode.html
https://base64.us/

URL编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值,将它们以name/value参数编码(移去那些不能传送的字符)作为URL的一部分或者分离地发给服务器。
任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括=,&和%这些特殊的字符。
其实URL编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的URL编码就是%5c。该编码的特征为一串%加两个字符的样式。
当然复杂程度又分为保留字符不编码、数字字母不编码、所有字符都编码三种。
如下图展示:
可以使用下面网站实现解密:
http://tool.chinaz.com/tools/urlencode.aspx
http://web.chacuo.net/charseturlencode

十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。特征:密文开头是0x后边是一串数字和字母。
CTF中常使用WinHex工具查看十六进制数据和ascii码、 修改文件头、 修改图片IHDR等。例如直接使用该工具打开图片,直接搜索可能就能得到flag,而且一般存在文本末尾,因此下图再进行ASCII解码便能得到最后结果。
当然也可以使用如下网站解密:
http://www.nicetool.net/app/hex_encode.html
https://www.hexator.com/decode/paste/

ROT5、ROT13、ROT18、ROT47 编码是一种简单的码元位置顺序替换暗码。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取,而不让其理解其意。
ROT5:只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推顺序循环。
ROT13:只对字母进行编码,用当前字母往前数的第13个字母替换当前字母,例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环。
ROT18:它是将ROT5和ROT13组合在一起,为了好称呼,将其命名为ROT18。
ROT47:对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前为小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。
可以使用下面网站进行解密:
https://www.qqxiuzi.cn/bianma/ROT5-13-18-47.php
http://www.mxcz.net/tools/rot13.aspx

上面简单讲解了Base64、URL、Hex和Rot四种加密类型。当练习靶场过程中可能会存在多次加密的形式,因此还需要不断总结开阔思路。例如下图靶场中的一个flag为混合加密类型,通过HEX—base64—URL三次解密后得到最后结果。

知识分享完了
喜欢别忘了关注我们哦~
予以风动,必降弥天之润!弥 天
安全实验室
