IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    dingjiacan@antvsion.com发表于 2024-12-31 07:11:56
    love 0

    引言

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

    用户user_id:xiaoming

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

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

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

    机器码修改

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

    修改成功:

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


    动态分析

    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}




沪ICP备19023445号-2号
友情链接