2020-1-1 爬网页16-js逆向入门(MD5加密)

本文只适用于初学者,只需要会打断点追踪就可以了。

前端js代码除了经常使用Base64编码和解码之外,MD5加密也是常用手段。

关于MD5加密,学计算机的都应该有了解。百度百科解释在此

简介

MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由4个32位分组组成,将这4个32位分组级联后将生成一个128位散列值。

在MD5算法中,首先需要对信息进行填充,这个数据按位(bit)补充,要求最终的位数对512求模的结果为448。也就是说数据补位后,其位数长度只差64位(bit)就是512的整数倍。

即便是这个数据的位数对512求模的结果正好是448也必须进行补位。

补位的实现过程:首先在数据后补一个1 bit; 接着在后面补上一堆0 bit, 直到整个数据的位数对512求模的结果正好为448。总之,至少补1位,而最多可能补512位。

js实现

观察某网站
在这里插入图片描述请求链接只有一个,便于我们学习。
Form Data有很多参数,我们就来追踪salt吧,因为一眼看上去就是需要一定业务逻辑才能得到的。

全局搜索salt,只有1个js中存在
在这里插入图片描述代码中浏览一下salt,在8935行设置断点。这里有个函数generateSaltSign,看上去除了产生salt,应该可以吧sign也一起解决了。

刷新页面,追踪进去,可以看到下面代码
在这里插入图片描述看到嘛,4个动态参数的逻辑都有了

  • ts:"" + (new Date).getTime()
  • bv:md5(navigator.appVersion)。appVersion是常量,可以在控制台直接输出看一下。
  • salt:ts+parseInt(10 * Math.random(), 10)
  • sign:md5(“fanyideskweb” + e + salt + “n%A-rKaT5fb[Gy?;N5@Tj”) 。e是需要翻译的内容

在这4个参数中,有2个用到了md5加密函数。

继续追踪,下一步就能看到md5加密过程了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值