一道ctf中的编码问题

来源:互联网 发布:三菱fxplc编程手册 编辑:程序博客网 时间:2024/06/15 12:58

今天做CTF题的时候,感觉有一道题很有意思,记录一下。

题目链接:一段base64

给了一个txt文档,打开以后满屏都是字,太多了我就不贴上来了,根据题目名字,反正就随便找了一个在线base64的网站,放进去,出来的还是一大段。。。
贴一部分吧

\134\170\65\143\134\170\67\65\134\170\63\60\134\170\63\60\134\170\63\65\134\170\63\63\134\170\65
\143\134\170\67\65\134\170\63\60\134\170\63\60\134\170\63\67\134\170\63\64\134\170\65\143\134
\170\67\65\134\170\63\60\134\170\63\60\134\170\63\67\134\170\63\62\134\170\65\143\134\170。。。。。。

看起来像8进制的数,下面的代码进行解码:

c= ''for i in b.split('\\'):    if i:        c+=chr(int(i,8))print(c)

输出如下:

\x5c\x75\x30\x30\x35\x33\x5c\x75\x30\x30\x37\x34\x5c\x75\x30\x30\x37\x32\x5c\x75\x30\x30\x36\x39\x5c
\x75\x30\x30\x36\x65\x5c\x75\x30\x30\x36\x37\x5c\x75\x30\x30\x32\x65\x5c\x75\x30\x30\x36\x36\x5c\x75
\x30\x30\x37\x32\x5c\x75\x30\x30\x36\x66\x5c\x75\x30\x30\x36\x64\x5c\x75\x30\x30\x34\x33\x5c\x75\x30
\x30\x36\x38\x5c\x75\x30\x30\x36\x31\x5c\x75\x30\x30\x37\x32\x5c\x75\x30\x30\x34\x33\x5c\x75\x30\x30
\x36\x66\x5c\x75\x30\x30\x36\x34\x5c\x75\x30\x30\x36\x35\x5c\x75\x30\x30\x32\x38\x5c\x75\x30\x30\x33
\x33\x5c\x75\x30\x30\x33\x38\x5c\x75\x30\x30\x32\x63\x5c\x75\x30\x30\x33\x33\x5c\x75\x30\x30\x33\x35。。。。

这看起来就像是16进制的了。。。
于是继续解码:

d= ''for i in c.split('\\'):    if i:        d+=chr(int(i[1:],16))print(d)

输出:

\u0053\u0074\u0072\u0069\u006e\u0067\u002e\u0066\u0072\u006f\u006d\u0043\u0068\u0061\u0072\u0043
\u006f\u0064\u0065\u0028\u0033\u0038\u002c\u0033\u0035\u002c\u0031\u0032\u0030\u002c\u0035\u0030
\u002c\u0035\u0034\u002c\u0035\u0039\u002c\u0033\u0038\u002c\u0033\u0035\u002c\u0031\u0032\u0030。。。。

这看上就是Unicode编码了,于是继续找个在线解码的网站:
输出:

String.fromCharCode(38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,48,59,38,35,
120,51,50,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,
48,59,38,35,120,51,56,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,57,59,38,
35,120,51,55,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120,50,51,59,38,35,120,51,49,59,38,35,120,51,
48,59,38,35,120,51,51,59,38,35,120,51,98,59,38,35,120,50,54,59,38,35,120。。。。

String.fromCharCode()是把ASCII码转成字符串,有很多种方法继续解码,可以直接chr()中间的数字,或者直接在游览器里面输入document.writeIn()加上上面这段:

这里写图片描述
输出:

flag%7Bctf_tfc201717qwe%7D

随便找个游览器输入上面的字符串就可以了
输出:

flag%7Bctf_tfc201717qwe%7D

%7B和%7D是URL编码的{和},所以最后答案就出来了。

原创粉丝点击