目录
JS逆向简单介绍
- js ‐‐> javascript
- 反爬 ‐‐> 爬取数据的过程中会碰到反爬技术
- js反爬 js逆向
- js反爬对应的一种反反爬策略称之为js逆向
JS逆向我们需要做的事情
- 找到加密字段
- 借助加密字段找到在客服端(浏览器端)进行加密的代码(js调试,找到加密的位置)
- 运行加密代码(找到加密代码之后要用python执行js代码)
- 最后,把加密之后的密码和其他参数一起提交到服务器(通过python实现)
环境搭建
1、node.js环境 建议下载xxx.msi的文件
2
、安装一个模块
pip install PyExecJs ‐i https://pypi.douban.com/simple
- vscode可以用来执行js代码
- vscode的安装:https://www.cnblogs.com/csji/p/13558221.html
- vscode执行js代码的环境配置:https://www.jianshu.com/p/3c47770c118
tips
:
vscode
不会自动默认保存
(
执行
)
修改之后的代码
如果需要自动保存的:
settings‐‐>
把
off
修改为
onFocusChange
用pyrhon执行js代码的方法
import execjs
def get_js(file_name, func_name, func_arges=None):
"""
通过python来执行js代码的方法
:param file_name:js文件的名字
:param func_name:要执行的函数名字
:param func_arges:方法传参
:return:js运行的内容
"""
with open(file_name, 'r', encoding='utf-8') as f:
js_code = f.read()
# 1、编译JS文件
cjs = execjs.compile(js_code)
# 2、执行js代码
# print(cjs.call('demo', 'world'))
return cjs.call(func_name, func_arges)
if __name__ == '__main__':
print(get_js('./test.js', 'demo', 'world'))
JS常用算法介绍
md5 线性散列算法
https://www.cmd5.com/123456+2044123456+2100为了提高密码的安全 一般会在密码后面追加一个盐
DES/AES 对称加密算法
a b c ‐‐> x y za‐‐xb‐‐yc‐‐zencrypt() 加密decrypt() 解密
RSA 非对称加密算法
公钥和私钥是一对的setPublicKey() 设置公钥
bases64 伪加密算法
采用 64 个字符来表示任意的二进制数据 A‐Z a‐z 0‐9 + /