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

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 行的代码到编辑框中补全成下面这样。

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逆向学习的文章每一篇都是很简单的案例,希望看完可以自己动手扣一遍。

本文分享自微信公众号 - 咸鱼学Python(xianyuxuepython)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云鼎实验室的专栏

腾讯云上攻防战事(三)丨千里追凶,云上黑产虽远必诛

互联网飞速发展为人们的生活带来了便利,但同时也给一群利欲熏心的不法分子创造了活动的空间。 在虚拟的网络世界中利用技术进行犯罪,明目张胆地进行CDN劫持、招摇过...

13820
来自专栏腾讯大讲堂的专栏

一文理解增长黑客方法论

| 导语 网上讲增长黑客方法论的文章很多,但大多只是碎片化的知识点或者雷同内容的复制粘贴,无法形成系统性的知识框架。 我读了增长黑客的3本书,浏览了100多篇...

19130
来自专栏ICT售前新说

快速了解Https

HTTPS:https是http与ssl的结合,为了解决http明文传输导致信息泄露的问题。ssl通过公钥和私钥保证客户端和服务器之间的通讯加密,由权威机构办法...

10320
来自专栏FreeBuf

浅谈企业安全:安全规划建设运营和职业发展

入安全行业3年,越走越发现前路漫漫,最开始的时候,想做一个网络工程师,考证,面试,准备实习,后来有幸去了启明星辰做安服,后来想做一个黑客,想做高级攻防研究,奈何...

16420
来自专栏FreeBuf

等保测评2.0之Centos安全审计

在进行等级保护测评时,需要检查主机的安全审计功能,这里就以等级保护2.0来说一说centos6在这方面的检测,以下是安全计算环境的安全审计控制点中的测评项。

18010
来自专栏云鼎实验室的专栏

最高五万元现金!TSRC腾讯云业务安全专项今日开战

产业互联网时代,“上云”已经成为各行各业数字化转型过程中的关键一步,“云载万物”是未来世界的写照,“云安全”也因此显得更为重要。互联一切,连接未来,同样也需要...

10430
来自专栏古巷博客

关于谷歌浏览器无法加载安全控件设置说明

当你安装完安全控件后谷歌无法加载,那是从Chrome 42+以后开始就不再支持安全控件了,使用Chrome浏览器正常安装安全控件后,重启浏览器进入登录页面,安全...

1.8K00
来自专栏Linux知识积累

抓包工具tcpdump用法说明

tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上。

10840
来自专栏网站漏洞修复

安卓APP安全漏洞测试 如何对APP安全进行全方位的漏洞检测

客户网站以及APP在正式上线之前,都会找专业的安全公司进行测试,检测网站、APP是否存在漏洞,以及一些安全隐患,大多数的运营者觉得安装一些安全防护软件就足以防止...

16010
来自专栏FreeBuf

Rocke黑客组织活动分析

通过分析2018年12月至2019年6月16日的NetFlow数据,我们发现调查目标中28.1%的云环境与Rocke控制(C2)域有过网络通信数据。其中一些还保...

8510

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励