首页
社区
课程
招聘
[推荐]看雪·安恒 2020 KCTF 春季赛 | 第二题设计思路及解析
发表于: 2020-4-20 17:05 8936

[推荐]看雪·安恒 2020 KCTF 春季赛 | 第二题设计思路及解析

2020-4-20 17:05
8936


第二题《子鼠开天》历时1天,已于17号中午12点关闭攻击通道。此题共有3898人围观,最终共有42支战队攻破。


接下来让我们一起来看一下这道题的设计思路和详细解析吧。




本题考密码学,用到了AES,RSA,SHA512,MD5,不过算法应用不科学,分解RSA很容易得到答案。


另外,由于作者设计不合理,导致结果多解,修复后,仍多解。根据比赛规则,本题成绩为0。。




本题出题战队 想梦成真 :



团队简介:熟练掌握OD、IDA、CE,熟练使用OpenSSL库进行数据的加密和解密,自学汇编、软件破解和逆向课程,能制作单机小游戏(植物大战僵尸、捕鱼达人)的简单外挂,目前还在锻炼自己的Windows编程能力中。





(1) 先进行name和sn字符数的判断,不满足条件就跳转结束。


(2) 对sn进行判断,是否是16进制,是的话就转为大写SN,不是16进制就跳转结束。


(3) SN进行AES_ecb_128_decrypt 解密计算产生m。


(4) m进行RSA计算产生c。(c = m ^ e mod n)


(5) 对于c的前16个字节A进行判断,是否满足第一字节为0,第二字节为2,第16字节为0,有一项不满足就跳转结束。后16字节为B。


(6) 对name进行两次sha-512_MD5 离散加密产生C。


(7) 然后B和C进行比较,相同就成功,不同就跳转结束。


 




本题解题思路由AceHub战队poyoten提供: 

刷了下手机看已经有人一血了。立马打开电脑开撸。


先看到题目里有sn.txt,先看了下:原来是新规则,提供了一组用户名及对应序列号,试运行下,是个控制台程序:


Enter your name: B1AC71D22D82EBB1
Enter your sn: 1788bdf0f45ff24515cfb9313f6519039c24c635ee518afc320b915ecdbf1613
Congratulations! You did it!


先静态分析下,主程序代码比较明了:



输入长度限制跳过,直接看check_401380函数。其伪代码如下:


校验的主要流程如下:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-4-20 17:34 被kanxue编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
学习了
2020-4-20 22:02
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
3
支持支持!
2020-4-21 04:54
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
为什么你静态分析的代码里面,有函数名?例如 sha256_md5_4010B0 这样的函数名.
2020-8-2 17:16
0
游客
登录 | 注册 方可回帖
返回
//