【js逆向】md5加密参数破解

MD5

md5:消息摘要算法(英文:MD5 Message-Digest Algorithm ),一种被广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值。该加密算法不可逆,通过暴力穷举法破解,以及网站接口实现解密。
js逆向中,可以通过搜索MD5关键字查找加密位置。

md5的js加密方法:

const CryptoJs = require ('crypto-js');  //导入加密库
let password = 'philosophy'; //加密字符串
let enPwd = CryptoJs.MD5(password).toString();
console.log(enPwd);  //输出结果

python实现MD5加密:

方法一:
import hashlib
str = 'philosophy'  #加密字符串
m = hashlib.md5()
m.update(str.encode('utf-8'))
print(m.hexdigest())
方法二:
from lxpy.encrypt import md5  #第三方库需要安装
print(md5.get_md5(str))

输出结果都为:

225ab6cdf797eae79495ff584a46dfd2

逆向案例

进入登录窗口,打开开发者工具,输入账号密码,点击登录进行抓包:
网站地址:https://www.zhaoxi.net/
在这里插入图片描述

在开发者工具中Network面板可以看到登录提交的数据有三个,前两个参数是固定,参数txtpassword明显通过加密生成,如图所示:
在这里插入图片描述
通过全局搜索参数名可以看到有多个结果,使用Initiator快速查看堆栈调用,进入send调用中设置断点,重新触发登录请求:
在这里插入图片描述
在这里插入图片描述
重新登录触发断点后,进行回溯堆栈调用,点击右侧Call Stack(调用堆栈),逐个点击查看,可以发现CheckForm里的Ajax请求前有个#txtpassword ,可以看出hex_md5明显是个加密函数,在控制台console中输入它,双击方法进入查看:
在这里插入图片描述

可以确认为md5加密,通过python实现加密,可以发现加密结果和提交的参数值一致。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄昏中起飞的猫头鹰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值