1.抓取数据包
目标网站:某zhongGuo天气网
js逆向流程:输入错误账号密码,找到真正的数据接口-->多个网页对比,找到那些字段是加密的-->全局搜索相关加密字段-->找到相关加密字段的js代码-->扣除js代码,进行调试
2.相关加密字段
从上图我们可以看到username
不变,password
进行了加密,全局搜索password
该字段,发现这个字段很可疑。
显而易见,这个字段加密很简单,password经过encode64()
函数加密的。具体encode64()
函数,参考我的GitHub
3.execjs库验证函数
def get_pwd():
with open('china_weather.js', 'r', encoding='utf-8') as f:
js_code = f.read()
# 编译js函数
ctx = execjs.compile(js_code)
# 执行js中的getPassword函数,参数为password
result = ctx.call('getPwd', 'a123456')
return result
print(get_pwd())
结果为:YTEyMzQ1Ng==