前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫进阶必备 | X博密码算法扣取+如何去扣取一个完整的逆向案例

Python爬虫进阶必备 | X博密码算法扣取+如何去扣取一个完整的逆向案例

作者头像
咸鱼学Python
发布2019-09-09 17:40:24
6850
发布2019-09-09 17:40:24
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python
XX街登陆密码加密

aHR0cDovL3NlbGxlci5jaHVjaHVqaWUuY29tL3NxZS5waHA/cz0vVXNlci9pbmRleA==

这个加密太简单了,五秒定位真的不是吹,所以直接来。

输入错误的账号密码,发起登陆请求,可以看到登录包里有个password的加密字段。所以我们依次搜索password: or password : or password= or password =

很快得到下面的结果【图1-1】,直接用 Python 实现就完事了~

图1-1

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

aHR0cHM6Ly93d3cud2VpYm8uY29tL2xvZ2luLnBocA==

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

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

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

  • 登陆前返回相关加密秘钥的包【图2-1】
  • 发起登陆请求的包【图2-2】

图2-1

图2-2

到这里就很清晰了,我们搞定 su 和 sp 就完事了。

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

图2-3

当然我们也可以试试搜索 参数名 su 【图2-4】,很明显搜索结果也验证了我们的猜想。

图2-4

接下来看看 sp

在我们上面搜索 su 的地方我们找到了密码加密的地方,已经用红框框出主要的逻辑【图2-5】,接下来我们打上断点找找缺失的参数都是什么。

图2-5

这里的参数都是比较简单的首先是 me.servertime 、me.rsaPubkey 和 me.nonce【图2-6】 这三个参数在上一个请求包都有同名的参数返回可以参考【图2-1】。

图2-6

我们现在已经找齐了全部的参数,接下来需要切换到 webstorm 中调试出我们整体的加密算法。

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

代码语言:javascript
复制
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()

虽然知道运行肯定报错,但是我们需要的就是报错的信息。【图2-7】

2-7

提示 sinaSSOEncoder is not defined ,我们回到浏览器调试窗口找 sinaSSOEncoder在哪儿定义的。可以直接在页面中搜索 var sinaSSOEncoder

结果就只有一个【图2-8】

图2-8

接下来复制 sinaSSOEncoder的全部内容到编辑器中,第1048-1981行。继续运行并提示navigator is not defined,我们定义它为{}。接下来会提示 me 未定义【图2-9】。

图2-9

但是我们调试过都知道这个 me.rsaPubkey 是在【图2-1】中返回的,所以我们把它替换掉。同理替换到我们已知的的其他参数。现在就只剩下 b 参数是未知的了。

我们向下运行,可以看到b参数就是我们输入的密码【图2-10】,我们继续替换再次运行,发现没有东西输出,也没有报错,我们在函数中加上一句 打印语句,看看返回的 b是什么结果,可以看到已经得到了加密后的结果了。【图2-11】

图2-10

图2-11

总结

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • XX街登陆密码加密
  • X博登陆密码解析与讲解如何扣取一个加密算法
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档