2016 西普杯京津冀信息安全挑战赛 WriteUp
🏛️ 组织架构
主办:北京市政府
协调指导:北京市委网信办
组织实施:北京市公安局
承办:北京西普阳光教育科技股份有限公司(西普教育)
协办:中国信息产业商会信息安全产业分会人才建设委员会
📅 赛事规模与流程
赛事历时两个月,规模盛大:
参赛规模:超过 400 支队伍,逾 1400 人次报名
赛程安排:分为分站赛和总决赛两个阶段
分站赛:在天津、河北、北京三地及线上举行,共 4 场选拔赛
总决赛:12 支队伍晋级,于 2016 年 4 月 29 日在北京展览馆举行
🏆 奖项设置
分站赛奖励:前三名分获 5000 元、3000 元、1000 元奖金
总决赛奖励:前三名分获 30000 元、20000 元、10000 元奖金及奖杯
分站赛前三名
| 赛区 | 第一名 | 第二名 | 第三名 |
|---|---|---|---|
| 天津赛区 | IOT战队 (天津理工大学) | zero storm1战队 (天津理工大学) | JLC战队 (中国民航大学) |
| 河北赛区 | 牧星湖战队 (河北科技大学) | 求精战队 (河北师范大学) | 河北翎贺战队 (石家庄工程职业学院) |
总决赛最终排名
| 最终排名 | 队伍名称 | 所属单位 |
|---|---|---|
| 冠军 | 北京邮电大学队 | 北京邮电大学 |
| 亚军 | 牧星湖队 | 河北科技大学 |
| 季军 | 北京航空航天大学队 | 北京航空航天大学 |
| 第6名 | IOT战队 | 天津理工大学 |
Reverse
re1(签到)

通关前调用了 sub_401000 函数,进去看看

这里在跟用户的输入作比较,所以 flag 是 flag{ssapdrow}

re2(MFC 逆向 + Base64)

打开程序是经典的 MFC 逆向

IDA 导入,打开字符串窗口发现大量的 Base64 编码

在 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= 处可以看到它被一个函数引用,这个函数地址附近是 sub_4011D0
同时看到注释 *char Str

进入 sub_4011D0 函数反编译代码,这个函数是一个 Base64 解码器,作用是将一个 Base64 编码的字符串解码为原始二进制数据

鼠标放在 sub_4011D0 函数的第一行指令,看谁调用了它

按 X 键,有 6 个调用点地址

先看第一个地址,双击进入,解码字符串 aW9zc67oktsiyu7 得到 密码不能为空
1 | import base64 |

进入第二个地址,将 aW9zc67oktsiyu7 字符串解密得到 密码长度不符合

进入第三个地址,解密得到 HOWMP半块西瓜皮hehe,疑似是密码
在程序中输入拿到 flag

Misc
misc02(签到)


直接扫码得到 429CTF{5cf8ca0d2dd785dd}