【总结】注册码泄露原理以及例题

引言

题目给了小明的机器码:1653643685031597

用户user_id:xiaoming

可以看到题目采用了SIMD指令集

该指令格式在CTF和攻防对抗中经常出现,可以提高执行效率的同时也可以增加逆向的难度。

对于此类指令和题目,我们分析的方法是:遇到查意思,查的多了就跟看正常代码一样,采用动态分析。

机器码修改

将内置的机器码改为题目给的:1653643685031597

修改成功:

得到flag的时候跟machine这个有很大关系。

【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

动态分析

machine_id处理

在这个加密函数中

发现了MD5特征

经过动调拿到函数加密后的结果

与我们的猜测是相符的

可以发现最终md5(机器码)变成

user_id处理

和调试machine加密一样,最终MD5(user_id)变成:

最终处理

经过之前相同的加密

变成这个数字:1228240365737281

然而这还没完,居然进行两次相同加密

再次加密后的结果:0502036271810858

可以发现此题出的很好,利用了密码比较的漏洞,没有将密文给出,而是将生成的密文在中间给出,从而造成了数据泄露。

得到flag

回顾加密流程,可以发现

f(key) = f( f( f(md5(machine)) + f(md5(user_id)) ) )

那么题目给了得到flag的machine和user_id,可以得出

Key =f( f(md5(machine)) + f(md5(user_id)) )

所以最终flag:

flag{1228240365737281}

更多网安技能的在线实操练习,请点击这里>>

  

posted @   蚁景网安实验室  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-08-09 数据库注入提权总结(一)
2021-08-09 深度学习赋能侧信道攻击实战
2021-08-09 浅析mysql存储过程
点击右上角即可分享
微信分享提示