首页
社区
课程
招聘
[原创]第十题 write up by 青蛙mage
发表于: 2019-3-24 15:36 2337

[原创]第十题 write up by 青蛙mage

2019-3-24 15:36
2337
1
 
推荐使用工具 dnSpy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (a(console.readline,"Kanxue2019")== "4RTlF9Ca2+oqExJwx68FiA==")
..............
 //比较结果  是否相同
public static string a(string A_0, string A_1)
{
    byte[] bytes = Encoding.UTF8.GetBytes("Kanxue2019CTF-Q1");
    byte[] bytes2 = Encoding.UTF8.GetBytes(A_0);
    byte[] bytes3 = new PasswordDeriveBytes(A_1, null).GetBytes(32);//这里有毒
    ICryptoTransform transform = new RijndaelManaged                           //AES-Rijndael算法
    {
        Mode = CipherMode.CBC  // CBC 模式
    }.CreateEncryptor(bytes3, bytes);
    MemoryStream memoryStream = new MemoryStream();
    CryptoStream cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Write);
    cryptoStream.Write(bytes2, 0, bytes2.Length);
    cryptoStream.FlushFinalBlock();
    byte[] inArray = memoryStream.ToArray();
    memoryStream.Close();
    cryptoStream.Close();
    return Convert.ToBase64String(inArray);
}
通过工具自带的动态调试,得知byte3实际是..... 

b'\x6D\xDE\xF7\xA4\x3C\x00\x4F\x7D\x69\x83\x04\x4B\x1E\x36\xA9\x34\x59\xF1\x8B\xC8\x37\xC4\x6E\xAF\x32\x11\x32\x73\x41\x63\xA0\xB4'

Python解密
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import base64
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex
 
 
data = "4RTlF9Ca2+oqExJwx68FiA=="
cipher_data=base64.b64decode(data)
= b'\xE1\x14\xE5\x17\xD0\x9A\xDB\xEA\x2A\x13\x12\x70\xC7\xAF\x05\x88'
 
key= b'\x6D\xDE\xF7\xA4\x3C\x00\x4F\x7D\x69\x83\x04\x4B\x1E\x36\xA9\x34\x59\xF1\x8B\xC8\x37\xC4\x6E\xAF\x32\x11\x32\x73\x41\x63\xA0\xB4'
 
IV=b'Kanxue2019CTF-Q1'
 
aes=AES.new(key,AES.MODE_CBC,IV)
r=aes.decrypt(H)
 
print(r)
得出结果 Kanxue2019Q1CTF

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

收藏
免费
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册