2019KCTF 晋级赛Q1 | 第十题点评及解题思路

好望角“Cape Of Good Hope”位于印度洋温暖的莫桑比克厄加勒斯洋流与南极洲水域寒冷的本格拉洋流相遇的地方,当航海者在经历过狂风暴雨的洗礼,越过这个风暴角,便会获得财富和希望。

好望角也是2019 KCTF晋级赛Q1最后一站,最后这道题,又会带给我们怎样的惊喜呢?让我们一起来看看吧!

2019KCTF 晋级赛Q1 | 第十题点评及解题思路_第1张图片

本道题目算是一道入门题,有超过100支队伍破解出来,战队kali-go 以47分钟率先破解本题。

出题团队

2019KCTF 晋级赛Q1 | 第十题点评及解题思路_第2张图片

战队成员:widesoft

个人主页:https://bbs.pediy.com/user-68717.htm

看雪CTF crownless 评委 点评

《初入好望角》作为本次看雪CTF晋级赛Q1的最后一题,是一道简单的送分题,基于.net2.0,使用了AES加密。参赛者只需要编写简单的代码,即可解密得到flag。

题目设计思路

一道.net平台下入门题目。使用了较常用的网站用户名/密码加密方法。程序使用Visualstudio自带的Dotfuscator做了简单混淆,几乎没有什么强度。可以逆向查看代码或通过修改IL再重新编译的方式爆破。

破解思路

本题解题思路由看雪论坛 SnowMzn 提供

2019KCTF 晋级赛Q1 | 第十题点评及解题思路_第3张图片

0x001-----程序逆向

由于程序是.net语言开发,因此使用DnSpy打开程序,启动程序后,使程序断在入口点处。

在这里可以看到代码

2019KCTF 晋级赛Q1 | 第十题点评及解题思路_第4张图片

代码逻辑很简单,将输入的字符串进行加密处理后,与字符串**4RTlF9Ca2+oqExJwx68FiA==**比较。

0x002-----算法分析

算法中的bytes和bytes3为固定值,bytes2为输入的值。

由于之前对C#语言并不是很了解,因此猜测算法中,是使用bytes和bytes3为密钥,使用CryptoStream加密bytes2,最后将加密后的字节数组进行Base64加密。

因此解密算法的思路为:

1、首先将

   **4RTlF9Ca2+oqExJwx68FiA==**字符串解密为十六进制字符串;

2、使用CryptoStream解密,得出flag。

0x003-----编写脚本

使用C#编写解密脚本如下:


2019KCTF 晋级赛Q1 | 第十题点评及解题思路_第5张图片

结果得到的是十六进制字符串,将结果转换为字符串即可。

2019KCTF 晋级赛Q1 | 第十题点评及解题思路_第6张图片

文章来源于:https://mp.weixin.qq.com/s/hvaF6z0bCZZTwHQsoSdW6g

你可能感兴趣的:(2019KCTF 晋级赛Q1 | 第十题点评及解题思路)