JS逆向之某招标采购平台接口aesKey、epcos以及响应content解密
文章目录声明一、起因与目标二、第一步:先证明它不是普通接口三、第二步:观察页面结构,判断从哪里下手四、第三步:优先打请求拦截器,不要先钻业务页1. GET 请求加密逻辑2. POST 请求加密逻辑五、第四步:把真正的加密函数剥出来1. 请求加密函数2. 响应解密函数请求侧响应侧六、第五步:别漏掉一个关键细节,AES key 不是任意 16 位字符串七、第六步:回到业务页面,确认目标接口的明文参数到底是什么八、协议真正还原后的完整流程GET 请求复现流程第一步:准备业务参数第二步:把参数拼成前端同款查询字符串第三步:生成 16 位 AES key第四步:AES 加密参数明文第五步:把 AES key 用 RSA 公钥加密第六步:把 `content` 再做一次 URL 安全 Base64 编码第七步:发请求第八步:解响应九、纯 Python 复现落地十、几个特别容易踩坑的点1. 只带 `epcos` 不带 `aesKey` 一定不行2. `epcos` 不是直接 AES 密文3. 响应里的 `aesKey` 不是请求头原样回显4. 业务页参数里 `null` 不参与最终明文声明本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除!一、起因与目标这次目标站点是:主页:https://zbb.tjhonline.com.cn/homeEntrustBulletin目标接口:/tjh/purchaser/entrustment/public/homepage目标非常明确,一共四件事:搞清楚请求头里的aesKey是怎么生成的搞清楚 GET 请求里的epcos是怎么生成的搞清楚响应里的content怎么解密用纯 Python 脱离浏览器环境复现整个调用过程换句话说,不是要“在浏览器里能调通”,而是要最终拿到一个独立脚本,直接在 Python 里发请求、拿结果、完成解密。这类任务的核心原则一直只有一句话:不要猜,所有关键结论都要落到代码和实测上。二、第一步:先证明它不是普通接口最开始我没有急着看 JS,而是直接拿接口去请求:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2551525.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!