这是我第一次参加ctf,有许多东西都还不会,感觉有一些题挺有趣的,多积累积累经验吧。
下发了一个叫flag的文件,用记事本打开发现是两行加密,第一行看着像base64,第二行看着应该是url编码
第一行解码无效,第二行url解码得到如下:
GHI3KLMNJOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5
应该是对base64进行了换表操作
base64的基本原理参考下面的连接:一份简明的 Base64 原理解析 - 知乎 (zhihu.com)
用python进行换表解码:
import base64
import string
string = "j2rXjx8yjd=YRZWyTIuwRdbyQdbqR3R9iZmsScutj2iqj3/tidj1jd=D"
tableBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
tableNew = "GHI3KLMNJOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5"
'''
maketrans():用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标;
translate():法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中;
decode():以encoding指定的编码格式解码字符串。
'''
'1.换表'
maketrans = str.maketrans(tableNew, tableBase64)
'2.使用新表转换字符串'
translate = string.translate(maketrans)
'2.Base64解码'
flag = base64.b64decode(translate)
'''
三合一操作:
flag = base64.b64decode(string.translate(str.maketrans(tableNew, tableBase64)))
'''
print (flag)
得到flag:
流量分析题,起先想复杂了,用长度排序发现一个json串以为是对json串解密,没想到是通过时间排序追踪
对Modbus/tcp进行追踪
红色的是发送的密文,为base32编码,进行解密得到flag
手机扫一扫
移动阅读更方便
你可能感兴趣的文章