唯品会密码JS解密与python模拟登录
上班都快一周了 , 一直想更新 , 奈何小伙还没有从假期的快乐中缓过来 , 今天终于耐下心来更新一小篇 。 抠一下某品会的JS代码 , 接着使用抠取的JS代码加密密码进行登录 。 友情提示:为避免不必要的纠纷 , 本文中所有网址都进行了一定隐藏 。
私信小编01即可获取大量Python学习资料
文章插图
目标标题已经阐明了本文的目的:
- 密码加密解密;
- 利用第一步加密方法加密后进行登录;
- 完整代码中尝试了多账号号批量登录(由于篇幅有限 , 移动到了 阅读原文 中);
文章插图
像以往一样输入错误的账号密码 , 看看提交的数据 , 点击登录后 , 提交账号密码 url 如下:
文章插图
继续看 FormData ,如下图:
文章插图
图中的 loginName 为你输入的用户名 ,password 为密码 , 可以看出被加密了 , 如果你熟悉了各类JS加密方式 , 心里应该能大概确定这就是 MD5 加密结果 。 暂时不用管其它的四个参数 , 接下来无非就是把加密JS代码抠出来 , 可以通过调用栈进去 , 也可以全局搜索 password 来定位JS文件 , 具体使用哪种方法就看各位看官的喜好了 , 我这里是从调用栈进去的(既然我们是在登录 , 那就点带有 login 字样的js文件进去好了):
文章插图
进来后你可以搜一下 password 关键字 , 应该马上就能定位到想要的位置 , 定位的时候别忘了挂上一个断点 , 就像下图一样:
文章插图
一看加密方法名就是熟悉的 MD5, 接下来的操作应该更加熟悉了 , 激活断点(输入账号密码 , 点击登录 , 前提是你挂上了断点) 。
文章插图
点击后就进入了加密方法里:
文章插图
function md5(string, key, raw) {if (!key) {if (!raw)return hex_md5(string);return raw_md5(string)}if (!raw)return hex_hmac_md5(key, string);return raw_hmac_md5(key, string)}
可以看出md5方法一共有三个参数 , 第一个 striing 即为密码 ,key 和 raw 是 undefined 。 接下笨一点的办法就是一步一步运行 , 把跳转的所有代码都扣下来 , 如果是刚开始学习抠代码 , 这个方法能增加很多调试”感觉” , 慢慢抠得越来越顺手 。 取巧一点的无非就是找到大括号:文章插图
一直往上找到 , 应该马上就能找到正括号:
文章插图
这样里面的代码其实就是本次要抠的代码 , 但是要使用 python 调用 , 还要进行一点改动 。 本次要抠的加密代码其实很简单 , 毕竟只是 md5。 经过稍微改写后 , 我们尝试使用python里 execjs 库执行:
推荐阅读
- 卡内基梅隆大学提出了更好的强密码设置建议
- Firefox 85将允许用户删除所有已保存的密码
- Edge浏览器酝酿用户账户安全追踪功能 必要时可提醒修改密码
- 扫码枪将钱扫走,却不需要密码,安全吗?
- 支付宝、微信有密码,“扫码枪”却直接将钱扫走?密码成了摆设?
- 支付宝、微信都有密码,扫码枪却能很轻松将钱扫走,这是为什么?
- 你还在为账号安全性低而担忧吗,不妨试试这样设置密码
- 解放双手 不用密码就能登录的笔记本推荐
- 2020年度最差密码出炉!你“中枪”了吗?
- 不安全!微软致力于用1年时间干掉密码