本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
aHR0cHM6Ly93d3cucWl6aGlkYW8uY29tL2NoZWNrP3NlYXJjaEtleT0lRTUlQTQlQTclRTYlOTUlQjAlRTYlOEQlQUUmdGFnTnVtPTEmc2NQYWdlVGl0bGU9UEMlRTclQUIlOTklRTQlQjglQkIlRTclQUIlOTkmc2VhcmNoTW9kZVR5cGU9OCZmcm9tUm91dGVQYWdlPWNoZWNrJmJ1c2luZXNzU291cmNlRHpsUXVlcnk9
获取参数data1位置的方法:
1、通过全局搜索decrypt找到加密位置
2、服务器发包解包的数据传输 一般采用 json格式,可以通过Hook json.parse(data1) 密文
var my_parse = JSON.parse;
JSON.parse = function (params) {debugger;console.log("json_parse params:",params);return my_parse(params);
};
下断点发现是AES加密:
通过请求enterpriseListV2链接发现每次都会返回一个hasUse参数int类型,每次请求都会变化。
在源码中可以发现AES的key是固定的,通过字典去取值
通过请求详情获取两参数
hasUse_num = response.json().get(‘hasUse’)
payload = response.json().get(‘data1’)
运用python实现AES解密
def decrypt(info: str, hasUse:int) -> list:key = f'{hasUse}'.encode(encoding='utf-8')cipher = w(key, mode=AES.MODE_ECB)json_str = str(cipher.decrypt(base64.b64decode(info)), encoding='utf-8')data = re.sub('[x00-x09|x0b-x0c|x0e-x1f]', '', json_str)return json.loads(data)
wz_uuid 应该是游客登录ID,没啥用,主要是x-web-ip这个参数。
经调试查看,被检测的请求ID应该是由浏览器环境 MD5后生成。
访问频繁和刷新频繁会被拦截,出现人机验证,需验证后重新
获取替换cookie中的x-web-ip方可访问。
本文发布于:2024-01-28 00:21:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063724993527.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |