DASCTF X GFCTF 2022十月挑战赛!

本文最后更新于:2022年10月24日 晚上

DASCTF X GFCTF 2022十月挑战赛!

Reverse

贪玩CTF

die看无壳 64位

image-20221023225242453

使用ida64动态调试发现自动退出

发现TlsCallback_0 在start函数前面执行

image-20221023225905176

把call cs:IsDebuggerPresent nop掉

并把 jz patch 换成jnz

如下图

image-20221023230137420

可以正常调试了

image-20221023230339130

shift+f12看字符串

image-20221023230518151

进去 ctrl + x 数据的交叉引用 静态分析

image-20221023231430104

进入 sub_7FF6ED1619C0 函数

image-20221023231725807

长度如果不等于16 返回 -1 得到是账户是 是16位

image-20221023231835581

返回-1 弹出 弹窗 字符长长度不对

image-20221023233439701

和上面一样密码也是16位 否则返回 -1 然后提示框 长度不对

让后我随便输入16个账户和16个密码

最下面有异或

image-20221024002114932

下面的判断给他断下来 按tab转汇编窗口

image-20221024001716092

image-20221024002040359

双击进入rsi寄存器

image-20221024002149163

提取

image-20221024002343866

编写脚本

1
2
3
4
5
6
str1 = [   0x04, 0x1F, 0x1F, 0x1E, 0x43, 0x4B, 0x43, 0x45, 0x44, 0x00, 0x16, 0x10, 0x55, 0x17, 0x12, 0x73]
str2= ''
for i in range(len(str1) -1):
str2 += chr(str1[i] ^ 0x73)
str2 += chr(0x73)
print(str2)

账户:wllm08067sec&das

分析密码 进入 sub_7FF6ED161390函数

image-20221024002614641

进入 byte_7FF6ED166040 字节

image-20221024004933249

1
63h, 7Ch, 77h, 7Bh, 0F2h, 6Bh, 6Fh, 0C5h, 30h, 1, 67h, 2Bh, 0FEh, 0D7h

​ aes加密 特征

image-20221024010824134

根据上面猜测上面的buffer应该是密钥

密钥:wllm08067sec&das

image-20221024100831027

让后跳出往下走

image-20221024100354185

byte_7FF6ED166990[v18] 是自己输入的密码

byte_7FF6ED1643D8[v18] 是aes加密后的密码

提取 byte_7FF6ED1643D8[v18] 里面的字符

image-20221024101025399

image-20221024101047770

1
\x3C\x97\x72\x96\x5A\x33\x63\x9C\x97\x30\x4D\x90\x84\xE8\x5F\x56

让后我们找个在线aes 解密 https://the-x.cn/cryptography/Aes.aspx

image-20221024101439316

账户是:wllm08067sec&das

密码是:e4deb7a6510a10f7

image-20221024101605649

flag 格式为DASCTF{账号+密码}

DASCTF{wllm08067sec&dase4deb7a6510a10f7}


DASCTF X GFCTF 2022十月挑战赛!
https://huajien.gitee.io/2022/23913/
作者
HUAJI
发布于
2022年10月24日
许可协议