本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
目标:37网游登录
接口: https://my.37.com/api/login.php
逆向参数:
Query String Parameters:
password: SlVEOThrcjgzNDNjaUYxOTQzNDM0eVM=
随便输入一个账号密码,点击登陆,抓包定位到登录接口为 https://my.37.com/api/login.php ,GET 请求,分析一下 Query String Parameters 里的主要参数:
callback
是一个回调参数,这个参数的值不影响请求结果,它的格式为
jQuery + 20位数字 + _ + 13位时间戳
,使用 Python 很容易构建;
login_account
是登录的账户名;
password
是加密后的密码;
_
是13位时间戳。
需要我们逆向的参数就只有一个
password
, 我们尝试直接全局搜索此关键字,会发现出来的结果非常多,不利于分析,这里就有一个小技巧,加个等号,搜索
password=
,这样就极大地缩短了查找范围,当然也可以搜索
password:
,也可以在关键字和符号之间加个空格,还可以搜索
var password
等,这些都是可以尝试的,要具体情况具体分析,一种没有结果就换另一种。
在本案例中,我们搜索
password=
,在 sq.login2015.js 文件里可以看到语句
h.password = td(f)
,疑似密码加密的地方,在此处埋下断点进行调试,可以看到返回的值确实是加密后的密码:
继续跟进
td
函数,可以看到是用到了一个自写的 RSA 加密,很简单明了,我们直接将其复制下来使用 Python 调用即可:
GitHub 关注 K 哥爬虫 ,持续分享爬虫相关代码!欢迎 star !
本案例完整代码: https://github.com/kuaidaili/crawler/tree/main/www_37_com