冬晨夕阳 发表于 2020-9-2 18:26:59

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


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




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

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

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

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



1.确定接口
https://img-blog.csdnimg.cn/20200902134614601.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center

https://img-blog.csdnimg.cn/20200902134644510.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center
2.断点调试
点击控制台的 initiator ,可查看当前的请求是哪一行触发。
然后点send,进入js文件

https://img-blog.csdnimg.cn/20200902135653271.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center

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

https://img-blog.csdnimg.cn/20200902135849580.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70



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

https://img-blog.csdnimg.cn/20200902165909900.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center

再次请求登陆

https://img-blog.csdnimg.cn/20200902170015563.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center



等待断点拦截

https://img-blog.csdnimg.cn/20200902170244756.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center


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

在_enter时 查看到了 o.md5_m 。

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

https://img-blog.csdnimg.cn/20200902170358175.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center





“52c69e3a57331…” 为加密后的值




https://img-blog.csdnimg.cn/20200902170524651.png#pic_center






然后再看 o.md5_m 怎么来的

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

https://img-blog.csdnimg.cn/20200902170623956.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center



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

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

https://img-blog.csdnimg.cn/20200902170853527.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center

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


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

https://img-blog.csdnimg.cn/20200902173352918.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center



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

https://img-blog.csdnimg.cn/20200902174347786.png

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

https://img-blog.csdnimg.cn/20200902174518955.png






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

https://img-blog.csdnimg.cn/20200902180654807.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70#pic_center



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

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

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




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




https://img-blog.csdnimg.cn/20200902181045530.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzU4MjEwMQ==,size_16,color_FFFFFF,t_70


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
页: [1] 2 3
查看完整版本: 斗鱼password加密参数调试生成案例