python调用js文件

python调用js文件生成参数

JS逆向

我就随便找了一个网站https://cloud.kingdee.com/passport/#/auth/login
随手输入一个账号密码,抓包后发现请求带着加密的密码(相同密码每次请求字符串都不同)和加密的验证码(有时候不出现),判断是个动态加密,那就针对密码下手把
在这里插入图片描述
1、进入第一步JS中打上断点
在这里插入图片描述
在这里插入图片描述
2、回溯发现,前面三个栈的方法里没有出现加密的js语句,这里继续打断点在第四个异步请求的地方
在这里插入图片描述
3、发现在call之后密码就被加密了,这里需要打个断点,F9进入
在这里插入图片描述
4、进来就是一个循环,首先之前就确定,密码是在这里加密出来的,可以F9一步一步找到,但我顺手下滑了一下哎嘿。。。。。瞧瞧 password: this.encryptedData(this.passwordInput) ,写法多么正规

在这里插入图片描述
在这里插入图片描述
5、进入这个方法,一看关键词setpublickey,估摸着就是RSA加密,再看是webpackJsonp格式,意思就是用了n(442)里面的RSA加密方法处理了我的密码“123456”
在这里插入图片描述

安装exejs与nodejs

pip3 install PyExecJS 安装execjs
https://nodejs.org/en/download/ 下载安装nodejs,过程全部下一步,结束关闭
cmd中用node -v查看安装成功与否,成功的话会显示node版本

调用js生成参数

import execjs
node = execjs.get() #获取js环境
with open('./test.js', encoding='utf8') as f:
    js_code = f.read() #读取js文件

js_compiled = node.compile(js_code)#编译js
pwd = js_compiled.call("getpwd", "123456")#调用getpwd方法,传入密码
print(pwd)

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值