首页
社区
课程
招聘
[原创]KCTFQ3 1.乱世鬼雄 writeup
发表于: 2019-10-15 18:20 2660

[原创]KCTFQ3 1.乱世鬼雄 writeup

2019-10-15 18:20
2660
首先通过简单的调试了解程序的主要逻辑

关键函数返回了一个值,而剩下的函数都与这个返回值有关,所以我们只需要获取正确情况下这个返回值为多少。

输入txt里给的正确用户名和序列号,调试

此时,返回值为 {0xC6,0xE4,0xCA,0xB5,0xCE,0xD2,0xB8,0xFC,0xCF,0xB2,0xBB,0xB6,0xCB,0xEF,0xBC,0xE1}

发现:这个关键函数就是将username字符串每一位的16进制  与  password字符串的每两位视为一个16进制  进行异或
验证:

所以只需要将这个返回值与题目已给的KCTF进行异或,就可以得到序列号了
1
2
3
4
5
6
7
8
9
10
11
s=[0xC6,0xE4,0xCA,0xB5,0xCE,0xD2,0xB8,0xFC,0xCF,0xB2,0xBB,0xB6,0xCB,0xEF,0xBC,0xE1]
user = "KCTF"
f=''
for in range(16):
    if(i>=4):
        += str(hex(0 ^ s[i]))
    else:
        += str(hex(ord(user[i])^s[i]))
print(f.replace('0x','').upper())
 
#8DA79EF3CED2B8FCCFB2BBB6CBEFBCE1





[招生]系统0day安全-IOT设备漏洞挖掘(第6期)!

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

账号登录
验证码登录

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