编码工具:肥肠的好用
https://gchq.github.io/CyberChef
1 base64
下载文档发现是一个base64加密,解密完发现是这个,但是不知道这个是什么,搜索一下
2 URL decode
在网页中,比如get时候会把网址中的中文和空格等特殊符号转化为%XX这种格式,看起来解码中的结果非常像这个URLdecode编码,于是进行解码。
注意,这个编码方式其实叫做Escape加密/解密,在Escape加密/解密中,+
作为一个符号是不进行%XX编码的,但是在URL中,+
代表连接的意思,会编译成空格,而空格是不在base92里面的,因此这里用URLdecode要设置禁止使用空格替换+
,或者方便一点直接用escape
3 base92
到这里解不动了,发现是base92,ASCII码才128个字符,这个base92基本把能显示出来的编码都弄进去了,我们进行解码。
结果如下:
4 十进制转16
上面的结果是0-9的十进制数,要得到最后的字符串,得往16进制上靠。 这里要先取两个十进制数为一组,再转16进制。
脚本代码如下。
1 | import re |
比如第一个是25,转为十进制是37,对应字符是%,下一个是75,十进制是117,对应的字符是u,我们从数字钟就可以看出来,2575总是一起出现并且出现了很多次
5 url解码
一眼URL解码
6 12进制转16进制
十二星座联想到12进制,我们对照表格对星座一一对应0123456789ab
1 | 白羊座 ♈ U+2648(3月21日 - 4月20日) |
转12进制如下,这次没有多个字符重复的了,因此应该是转16进制
1 | 7040917a486507929b083408822a63a1927490331821937824b42a099a811468a445284 |
16进制如下
1 | 3636364336313637374234393546344334463536343535463333333634343744 |
7 转ASCII
结果如下
1 | 666C61677B495F4C4F56455F3336447D |
8 base16
解码一下就出来了
1 | flag{I_LOVE_36D} |