ss15980205752 发表于 2021-8-1 12:31

新手小白Js解密思路之md5加密

本帖最后由 ss15980205752 于 2021-8-1 12:34 编辑

首先在此声明,本文仅仅提供JS解密研究学习思路,所举case相关敏感已打码略去,读者不可利用本文所述内容进行非法商业获取利益,否则后果自负。


登陆的时候密码被加密了,因为是32位的字母数字随机组合,先猜测过去应该是MD5加密

搜索“password”来定位加密的位置

看到关键的字母CryptoJS.MD5,找到关键的加密代码,进到里面看下详细的代码

结合前后代码分析,这就是md5加密,接下来搜索MD5

看它这个JS文件名就是叫md5.js,再进到这个js文件里面看下具体代码,分析后可以看出这个里面的全部代码都是跟MD5有关的,全部复制出来调试一下

系统引擎运行,提示错误说明:Microsoft JScript 运行时错误 【'lib' 为 null 或不是对象】


lib对象不存在,为什么会不存在?
Lib是通过C来的,C又是通过CryptoJS来的,CryptoJS是传参进来的,那么我们需要找到CryptoJS这个对象。
再次搜索关键字CryptoJS,找到相关代码

19行这里有个声明变量CryptoJS的,我们进去看一下详细代码

结合代码结尾

代码的结尾又返回了CryptoJS这个对象,那么这些代码就都是我们需要的,把core.js里面的全部代码全部复制,放到调试工具里面最开头

并且在调试工具的结尾加上调用的代码

function test(password){
      return CryptoJS.MD5(password);
}

参数传入password的参数123456,点击系统引擎运行,返回js加密结果为:e10adc3949ba59abbe56e057f20f883e

对比一下我们在网页提交的密码加密结果是一样的,我们就找到了密码的加密代码。



IBinary 发表于 2021-8-3 09:52

谢谢楼主分享,但是不知道楼主看的哪个教程。 MD5不是加密算法。 是hash算法。
你这标题有误,有可能看哪个教程导致自己也认为md5是加密算法。
有可能楼主是无意的。 但我提出来其实想让楼主更精进一些。 别把hash搞成加密算法。这样容易误导他人。 还有楼主我不是在喷人。我只是提建议。 一起共同努力提升把。 最后谢谢分享。

闷骚小贱男 发表于 2021-8-1 19:39

,。。。像你这个可以直接断点直接调用md5函数...并不一定所有东西都需要用JS调试工具。。。
我很多时候是要用易语言或者别的语言去调用JS函数才会用

EAming 发表于 2021-8-1 13:47

支持一下

tata190711 发表于 2021-8-1 13:50

支持楼主,感谢分享!

ZstarX 发表于 2021-8-1 13:56

支持楼主,感谢分享

Kristin_ 发表于 2021-8-1 14:10

很好用的思路

minibeetuaman 发表于 2021-8-1 14:35

哪家的JS,居然不混淆一下

serene97031 发表于 2021-8-1 15:39


支持楼主,感谢分享!

kll545012 发表于 2021-8-1 15:58

MD5,你这个调试工具就可以直接加密,知道明文密码,哪里还需要去扣代码~~

wangguiqing 发表于 2021-8-1 16:35

感谢分享

耿梦莹123 发表于 2021-8-1 18:16

支持一下
页: [1] 2 3 4 5 6
查看完整版本: 新手小白Js解密思路之md5加密