Python爬虫进阶--js逆向-某博密码算法扣取+如何去扣取一个完整的逆向案例

在这里插入图片描述

X博登陆密码解析与讲解如何扣取一个加密算法

本次受伤者:
aHR0cHM6Ly93d3cud2VpYm8uY29tL2xvZ2luLnBocA==

用 Chrome 浏览器抓包相信大家都会,前面抓包我们跳过,直接到加密参数分析的地方。

Tip: 这次的加密不是异步的 不要在 XHR 选项卡傻乎乎的等了。

X博登陆框是嵌在页面中的加上X博的登陆页面图片以及要加载的东西很多,所以我们需要注意的包主要有两个:

  • 登录前返回相关加密密匙的包,如下图:
    在这里插入图片描述
  • 发起登录请求的包,如下图:
    在这里插入图片描述
    看上面两张图就知道,我们只要找出 su 和 sp 的加密逻辑就完事儿了。

先来看看 su 这个其实不要搜索,看着是不是很像我们开头的编码结果,由 a-zA-Z[0-9]+/= 这几种字符组成的编码 熟悉的就只有 Base64 , 我们直接找一个在线工具验证一下我们的猜想。如下图
在这里插入图片描述
在这里插入图片描述

当然我们也可以试试搜索 参数名 su ,很明显搜索结果也验证了我们的猜想。
在这里插入图片描述
接下来看看 sp:
在我们上面搜索 su 的地方我们找到了密码加密的地方,已经用红框框出主要的逻辑如下图,接下来我们打上断点找找缺失的参数都是什么。
在这里插入图片描述
这里的参数都是比较简单的首先是 me.servertime 、me.rsaPubkey 和 me.nonce 如下图 这三个参数在第一个请求包 prelogin.php 都有同名的参数返回可以参考。
在这里插入图片描述
我们现在已经找齐了全部的参数,接下来需要切换到 pycharm或者webstorm 中调试出我们整体的加密算法。

直接复制粘贴 789 - 791 行的代码到编辑框中补全成下面这样。

function get_sp() {
    var f = new sinaSSOEncoder.RSAKey;
    f.setPublic(me.rsaPubkey, "10001");
    b = f.encrypt([me.servertime, me.nonce].join("\t") + "\n" + b);
    return b;
}

get_sp();

运行肯定报错的,但我们需要的就是报错信息,看缺什么补什么,如下图:
在这里插入图片描述
提示 sinaSSOEncoder is not defined ,我们回到浏览器调试窗口找 sinaSSOEncoder 在哪儿定义的。可以直接在页面中搜索 var sinaSSOEncoder 如下图:
在这里插入图片描述
接下来复制 sinaSSOEncoder 的全部内容到编辑器中,第1048-1981行。继续运行并提示 navigator is not defined,我们定义它为{}。如下图:
在这里插入图片描述
接下来会提示 me 未定义,如下图:
在这里插入图片描述
但是我们调试过都知道这个 me.rsaPubkey 是在第一个请求包中返回的,所以我们把它替换掉。同理替换到我们已知的的其他参数。现在就只剩下 b 参数是未知的了。

我们向下运行,可以看到b参数就是我们输入的密码,我们继续替换再次运行,发现没有东西输出,也没有报错,定义个变量接收函数返回的内容,然后打印一下,看看返回的 b是什么结果,可以看到已经得到了加密后的结果了。如下图:
在这里插入图片描述

总结

这次主要把如何扣一个简单的加密算法做了讲解,这里包含了基础的JS知识,或许看不明白为什么是复制的是这些代码而不是其他的。

这里我的建议是可以适当补充一些JS基础语法的知识。等到下次有类似的加密算法时,你可以试着自己做出判断复制扣取哪些,这样学的更快。

JS逆向学习的文章每一篇都是很简单的案例,希望看完可以自己动手扣一遍。

因为

每天一题,头发掉的更快。
在这里插入图片描述

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值