1. url: https://store.steampowered.com/login/?redir=&redir_ssl=1

2. target: 登录

3. 分析

3.1 老样子,抓包,找js。

随便输入一个帐号密码,点击登录,看看发送了哪些请求。

一次登录,发送了两次请求,第一次的请求结果是一个json,里面有两个参数,是第二次请求中需要的,这个直接添加用户名和一个时间戳发送post就可以了,不管它。看dologin。

3.2 有一个password参数是加密的,其余两个看起来不是很重要。下面就对这个参数进行解密。

3.3 复制加密参数,去寻找哪里出现了这个参数,这里看起来比较像。

那就打上断点调试,找依赖函数,变量,最终扣出可运行js代码。

4. python代码:

from afterWork.config import proxies, userAgent
import requests
import json
import time
import re
import execjs def getModExp(data):
res = requests.post(url='https://store.steampowered.com/login/getrsakey/',
data=data,
headers={'User-Agent': userAgent.random()})
# print(res.text)
jsonInfo = json.loads(res.text)
mod = jsonInfo['publickey_mod']
exp = jsonInfo['publickey_exp']
return mod, exp def getData(userName, donotcache):
data = {
'donotcache': donotcache,
'username': userName
}
return json.loads(json.dumps(data)) def accountInfo():
userName = '你的用户名'
pw = '你的密码'
donotcache = re.sub(r'\.', '', str(time.time()))[:-4]
# print(donotcache)
# print('1577238990888') return userName, pw, donotcache def getJsCode():
with open('jsCode.js', 'r') as f:
jsCode = f.read()
return jsCode def getLoginData(username, pw, donotcache):
loginData = {
'donotcache': donotcache,
'password': pw,
'username': username,
'twofactorcode': '',
'emailauth': '',
'loginfriendlyname': '',
'captchagid': '-1',
'captcha_text': '',
'emailsteamid': '',
'rsatimestamp': '',
'remember_login': 'false'
}
print(loginData)
return json.loads(json.dumps(loginData)) def login(loginData):
res = requests.post(url='https://store.steampowered.com/login/dologin/',
data=loginData,
headers={'User-Agent': userAgent.random()})
print(res.text)
return def mainFun():
userName, pw, donotcache = accountInfo()
data = getData(userName, donotcache)
# print(type(data))
mod, exp = getModExp(data)
jsCode = getJsCode()
ctx = execjs.compile(jsCode)
result = ctx.call('getPW', pw, mod, exp)
# print(result)
loginData = getLoginData(userName, result, donotcache)
# print(type(loginData))
login(loginData) if __name__ == '__main__':
mainFun()

结果,登录成功返回这些东西:

学习交流,勿作他用。

js加密(七)steam登录的更多相关文章

  1. Python 爬虫js加密破解(四) 360云盘登录password加密

    登录链接:https://yunpan.360.cn/mindex/login 这是一个md5 加密算法,直接使用 md5加密即可实现 本文讲解的是如何抠出js,运行代码 第一部:抓包 如图 第二步: ...

  2. AES加密解密——AES在JavaWeb项目中前台JS加密,后台Java解密的使用

    一:前言 在软件开发中,经常要对数据进行传输,数据在传输的过程中可能被拦截,被监听,所以在传输数据的时候使用数据的原始内容进行传输的话,安全隐患是非常大的.因此就要对需要传输的数据进行在客户端进行加密 ...

  3. 使用selenium进行密码破解(绕过账号密码JS加密)

    经常碰到网站,账号密码通过js加密后进行提交.通过burp拦截抓到的账号密码是加密后的,所以无法通过burp instruder进行破解.只能模拟浏览器填写表单并点击登录按钮进行破解.于是想到了自动化 ...

  4. js加密后台加密解密以及验证码

    该文档为转载内容: 加密解密 1 前端js加密概述 2 前后端加密解密 21 引用的js加密库 22 js加密解密 23 Java端加密解密PKCS5Padding与js的Pkcs7一致 验证码 1 ...

  5. 昆仑游戏[JS加密修改]

    昆仑游戏:http://www.kunlun.com/index.html JS加密修改 BigTools=window.BigTools;//重点 RSAKeyPair=window.RSAKeyP ...

  6. web主题公园版权信息破解:script.js加密文件

    很多人会使用web主题公园网站的免费worldpress主题,但它的主题又都被加了版权信息,故意让人找不到版权信息的修改位置. 你如果去footer.php里面删除版权信息(技术支持:web主题公园) ...

  7. JS按回车键实现登录的方法

    本文实例讲述了JS按回车键实现登录的方法,该功能有着非常广泛的实用价值.分享给大家供大家参考之用.具体方法如下: 方法一: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 < ...

  8. js加密的密文让PHP解密(AES算法)

      JS加密代码如下     <script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/aes ...

  9. RSA加密前端JS加密,后端asp.net解密,报异常

    RSA加密前端JS加密,后端asp.net解密,报异常 参考引用:http://www.ohdave.com/rsa/的JS加密库 前端JS加密代码: function GetChangeStr() ...

  10. wordpress使用video.js与七牛云存储实现无广告视频分享应用

    video.js是一款极受欢迎的基于HTML5的开源WEB视频播放器,其充分利用了HTML5的视频支持特性,可以实现全平台的无视频插件播放功能,对于现在流行的手机.PAD等移动智能终端有极佳的应用体验 ...

随机推荐

  1. javascript当中的构造函数的用法

    5)构造函数的用法: 例 3.5.1 <head>    <meta http-equiv="content-type" content="text/h ...

  2. [JZOJ5060] 公路建设

    题目描述 在Byteland一共有n个城市,编号依次为1到n,它们之间计划修建m条双向道路,其中修建第i条道路的费用为ci. Byteasar作为Byteland公路建设项目的总工程师,他决定选定一个 ...

  3. php设计模式之装饰模式实例代码

    <?php header("Content-type:text/html;charset=utf-8"); /** * 文章编辑类 */ class Article { pr ...

  4. 其他 - YAML 入门

    概述 简单介绍 YAML 语言 背景 很多地方, 都在使用 YAML k8s spring 其他 准备 验证工具 YAML.YML在线格式化校验工具 一个 YAML 转换 JSON 的工具 通常来说, ...

  5. zabbix4.2配置监控nginx服务

    1.监控原理 通过status模块监控(--with-http_stub_status_module)  2.修改nginx配置(/etc/nginx/conf.d/default.conf) 在被监 ...

  6. centos7修改xshell默认访问端口由22修改为62058

    1.vim /etc/ssh/sshd_config 2.新加端口62058:Port 62058 3.重启sshd服务:systemctl restart sshd 4.将新加端口添加到防火墙并重启 ...

  7. 嵌入式Linux学习---进程(1)

    什么是一个进程?当用户敲入命令执行一个程序的时候,对系统而言,它将启动一个进程.但和程序不同的是,在这个进程中,系统可能需要再启动一个或多个进程来完成独立的多个任务.多进程编程的主要内容包括进程控制和 ...

  8. linux命令 EOF

    在shell脚本中,通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主Shell. EOF只是一个分界符,当然也可以用abcde替 ...

  9. (转)Hadoop Combiner

    转自:http://blog.csdn.net/jokes000/article/details/7072963 众所周知,Hadoop框架使用Mapper将数据处理成一个<key,value& ...

  10. crowdfunding项目01——感人的错误

    四十搭环境,半个小时下载jar包,网速感人,一个半小时找bug真是感动 首先SSM项目,主要功能进行增删改查 建立父工程和子工程,产生依赖关系 父工程:pom 子工程:jar.war(web工程) 错 ...