编码是网络安全的基础知识,有时我们需要对控制字符(不可打印字符)及可打印字符进行处理,将字符串的其他表示形式转为ASCII进而进行分析。
本文介绍两个离线解码工具。
下载地址
https://github.com/koczkatamas/koczkatamas.github.io
解压完成后使用Google或Firefox打开index.html即可
页面如图所示:
在ASCII栏输入任意字符串,后面行中的内容都会发生变化,其中DEC表示ASCII的十进制,HEX表示ASCII的十六进制,OCT表示ASCII的八进制。
将要转化的字符串放到Koczkatamas的DEC、HEX、OTC栏,再观察ASCII栏即可
给出一段字符串如下:
可以观察到,数字和字母中字母最大不超过F,因此推测该字符串为十六进制字符串
放入HEX栏转化得到ASCII:
在字符中,不可打印字符的范围是0 ~ 31和127,对应十六进制的
0x00
~0x1F
和0x7F
可打印字符的范围是32
~126
,对应十六进制的0x00
~0x7E
通过分析可知内容为Base64编码,解码得到:
暗示该题考察的是base64的信息隐藏,由于base64编码是人为可控的,导致一个字符串可能得到多个base64编码。只要编码后的字符串有等号,则他们都可以隐藏信息。
如图所示:
我们可以写一个脚本来解析隐写:
得到编码前的字符串:
CyberChef是一个功能强大的在线工具,用于执行各种数据处理和转换操作。
CyberChef支持多种编码和加密算法,如Base64、十六进制、URL编码、ROT13、AES、DES等。
除了基本的编码和加密操作,CyberChef还支持更高级的功能,如正则表达式匹配、数据格式解析、文件分析等。它还提供了许多内置的 “Recipes”,即预定义的操作序列,可以用于常见的数据处理任务。
下载地址
https://github.com/gchq/CyberChef/tree/gh-pages
解压后点击index.html即可使用:
页面如下:
从搜索栏搜索我们需要的算法,如下图 To Base64 是base64加密, from base64 是解密算法。双击或者推拽我们所需要的算法把它放到recipe(配方)中即可进行加解密操作。删除算法栏的算法也同样是双击或者拖拽。
加密:
解密:
在favourites中可以添加或删除我们常用的算法:
有时解密出来的中文是乱码,如何解决?
Syntax highlighter可执行美化高亮操作,并且不会影响原有的缩进:
效果如图:
想要更加整齐的美化,如高亮、缩进之类的可根据加密数据的类型自行选择其它的beautify模块。
这是一段char型恶意脚本,故使用正则表达式([0-9]{2,3}(,s|))+
筛选脚本中的char型字符串
然后使用From Charcode对筛选出的char型字符串进行转换,在转换前需要将间隔符Delimiter选为Comma(逗号),Base选为10进制。
可以看到,恶意代码是一段JS代码,其中还隐藏有一段char型字符串,重复操作得到核心恶意代码: