MD5逆向加密案例一

本文探讨了一个MD5加密的逆向案例,涉及对在线翻译网站POST请求的分析。通过开发者工具,发现加密参数包括i, salt, sign和lts。经过对JavaScript代码的查找和断点调试,确定了n.md5为解密方法。通过将找到的JS代码保存并修改,以Python执行,解决因缺失md5方法导致的错误,最终成功解密。" 114597968,10551863,提高ResNet训练准确率:解决训练与预测不一致问题,"['深度学习', '神经网络', '模型训练', '图像识别', '优化算法']
摘要由CSDN通过智能技术生成

本节内容是对MD5加密的逆向案例,主要内容是对POST表单数据的加密分析。

目标网站链接:在线翻译_有道

在输入框输入「你好」会自动翻译成我们的目标内容「hello」,通过开发者工具查看该网站链接发送的请求头内容,发现POST表单数据如图1所示:

图1

 参数i是我们手动输入的内容;salt,sign,lts,bv是我们需要获取的。

直接全局搜索关键词sign,可以发现只有一个, 点击进入查看,再次搜索关键词sign,发现第六个可能就是我们需要的。进行断点,结果如图2所示:

图2

可以看出来n.md5就是我们要解密的方法了,点击进入该方法查看详细内容,结果如图3所示:

图3

解密算法分析完成,接下来就可以编写Python代码了。

import execjs

with open('test.js','r') as f:
    ctx = execjs.compile(f.read())
result = ctx.call('get','你好')
print(result)

将我们找到的js代码保存在'test.js'文件中,替换变量t的值,可以把n.md5更改为md5。

function get(e) {
        var t = 'db3e6fc05e1796cb0030cda74ecb0567'
          , r = "" + (new Date).getTime()
          , i = r + parseInt(10 * Math.random(), 10);
        return {
            ts: r,
            bv: t,
            salt: i,
            sign: md5("fanyideskweb" + e + i + "Ygy_4c=r#e#4EX^NUGUc5")
        }
    };

在程序运行过程中,发现代码会报错显示参数未定义,例如:execjs._exceptions.ProgramError: ReferenceError: md5 is not defined,所以接下来核心方法就是「缺啥补啥」。其中md5方法我们已获取,直接补充到js文件中,然后根据代码报错的提示不断填补参数代码,直到程序正常运行。

p = function(e) {
    var t, n = "", r &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值