第十六届全国大学生 信息安全竞赛创新实践能力赛wp
阅读原文时间:2023年10月05日阅读:3

这是我第一次参加ctf,有许多东西都还不会,感觉有一些题挺有趣的,多积累积累经验吧。

Sign_in_passwd

下发了一个叫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:

27日_被加密的生产流量

流量分析题,起先想复杂了,用长度排序发现一个json串以为是对json串解密,没想到是通过时间排序追踪

对Modbus/tcp进行追踪

红色的是发送的密文,为base32编码,进行解密得到flag

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器