29回答

0收藏

斗鱼password加密参数调试生成案例

信息分享 信息分享 9036 人阅读 | 29 人回复 | 2020-09-02


下午逛论坛的时候,看到一个老哥的js逆向视频,发现这个案例挺不错的,我就写了一份博客,蹭个热度。




斗鱼登陆 输入账号密码,拖动滑块后会向登陆接口发起请求。

通过抓包发现请求体 Formdata 中的 password 进行了加密。

本案例演示如何通过控制台调试找到加密js方法。

最后使用python来模拟生成,文末附有代码。



1.确定接口



2.断点调试
点击控制台的 initiator ,可查看当前的请求是哪一行触发。
然后点send,进入js文件



点击左下角 {} ,格式化文件





然后点击左侧行数,打上断点



再次请求登陆





等待断点拦截




然后看右侧的 call stack 函数调用栈,一层一层往上找。

在_enter时 查看到了 o.md5_m 。

没看到_enter时 刷新再来一遍。







“52c69e3a57331…” 为加密后的值











然后再看 o.md5_m 怎么来的

往上一行可以看到 o.md5_m = CryptoJS.MD5(k).toString()





鼠标移上去之后点击匿名函数

然后可找到 CryptoJS ,CryptoJS是支持加密的JavaScript库。



你也可以接着断点查看具体的加密过程。


3.模拟生成
把这段js复制下来。写入html,然后在控制台测试。
这个时候其实可以写一段代码直接通过浏览器的驱动来生成了。





4.Python调用
调用CryptoJS的md5模块时,加密的结果是一个数组,而不是我们常见的MD5值。



在 js中可以使用CryproJs的 toSting来直接转换成字符串。








我们用python实现的话,把这段函数拿出来用就行了



[ttreply]

整体调用代码见博客:https://blog.csdn.net/weixin_43582101/article/details/108360637

打印结果和浏览器中调试结果相同。

本篇案例到此为止了。有兴趣的同学可以加群一起学习




更多文章可前往csdn博客:https://blog.csdn.net/weixin_43582101






[/ttreply]
分享到:
回复

使用道具 举报

回答|共 29 个

zenghuan

发表于 2020-9-2 22:51:43 | 显示全部楼层

登录不难,难在数美风控
回复

使用道具 举报

icebound

发表于 2020-9-4 22:33:52 | 显示全部楼层

66
回复

使用道具 举报

andi

发表于 2020-9-9 17:45:04 | 显示全部楼层

66
回复

使用道具 举报

邓亮

发表于 2020-9-9 22:20:51 | 显示全部楼层

666
回复

使用道具 举报

Delighted_66

发表于 2020-9-9 22:45:11 | 显示全部楼层

66
回复

使用道具 举报

mixintu

发表于 2020-9-13 16:18:20 | 显示全部楼层

回复

使用道具 举报

JasonLv

发表于 2020-9-16 16:42:04 | 显示全部楼层

66666
回复

使用道具 举报

杰神荡漾

发表于 2020-9-17 10:10:13 | 显示全部楼层

1
回复

使用道具 举报

musk

发表于 2020-9-17 11:36:25 | 显示全部楼层

11
回复

使用道具 举报