我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

例如:登录js调试工具: js调试工具.rar - 桌面系统文档资源 - CSDN下载

1.获取加密代码

从图中可以看出是经过加密的,我们在搜索框中搜索“=”,找到并打开包含关键字的js文件,查看里面的代码。

我们在这行代码里找到了加密代码语句​​,是RSA加密,我们在这里设个断点,重新提交登录。

我们将这两行代码复制到js调试工具中。

把复制的代码放到一个函数中,然后我们需要完成这个功能。

我们回到检测工具中,定位到()函数,并进入其所在的js文件。

通过观察我们发现该js文件里面含有RSA加密内容,因此我们将该文件里面的代码全部复制到js调试工具中。

加载代码,求表达式的值,报错,我们先解决()函数的定义,返回检查工具搜索。

找到了,将代码复制到调试器中,再次加载计算。

让我们继续解决错误。它说它尚未定义,所以让我们定义两个变量并将它们用作函数参数。

将相应的mod和exp数据复制到定义的变量中,并再次加载计算。

继续解决错误问题,可以看到错误行的代码中有关键字 this,在方法中,this 指的是方法所属的对象,所以我们继续寻找它所属的对象。

可以看到这个js文件里面调用的东西非常多,为了减少不必要的麻烦,干脆把这个文件里面的代码全部复制到调试工具里(先把刚才复制的函数删除)。

再次加载时,出现“未定义的错误”,这是js内置的对象,我们在代码开头加上=this;,再次加载计算,加密结果出现成功⇩⇩⇩

2.使用模块运行js代码获取加密密码

执行前修改js代码。因为mod和exp的值不一定是固定的,所以需要实时捕获。

function getPwd(password,mod,exp) {
var pubKey = RSA.getPublicKey(mod,exp);
var encryptedPassword = RSA.encrypt(password, pubKey);
return encryptedPassword;
}

使用发送请求获取数据,然后将它们传入()函数中即可得到加密后的密码。

import execjs
import  requests
header = {
"user-agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
}
url = "https://store.steampowered.com/login/getrsakey/"
data ={
    "donotcache": "1639109728248",
    "username": "123@qq.com"
}
resp = requests.post(url,headers=header,data= data).json()
mod = resp['publickey_mod']
exp = resp['publickey_exp']
print("publickey_mod:",mod)
print("publickey_exp:",exp)
# 实例化一个node对象
node = execjs.get()
#js源文件编译
ctx = node.compile(open('nsa.js',encoding='utf-8').read())
#执行getPwd函数
funcName = 'getPwd("{0}","{1}","{2}")'.format('123456',mod,exp)
pwd =  ctx.eval(funcName)
print("密码:",pwd)

输出效果

3.模拟登录steam

#续上代码
url_login = 'https://store.steampowered.com/login/dologin/'
data_login = {
    "donotcache": "1639124407636",
    "password": pwd,
    "username": "123@qq.com",
    "twofactorcode":"",
    "emailauth":"",
    "loginfriendlyname":"",
    "captchagid": "-1",
    "captcha_text": "",
    "emailsteamid": "",
    "rsatimestamp": "118875800000",
    "remember_login": "false"
}
resp_login = requests.post(url_login,headers=header,data=data_login).json()
print(resp_login)

输出效果

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4917.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线