作者声明:文章仅供学习交流与参考!严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除!
目标网站:aHR0cHM6Ly91bGFuZC50YW9iYW8uY29tL3NlbS90YnNlYXJjaD9rZXl3b3JkPSVFNyU5NCVCNyVFOSU5RSU4Qg==
1.确定数据返回接口
2.找到加密参数
将接口复制为curl后转换成python代码,对其中参数注释后请求,找到参数sign为检测点。
(转换工具为猿人学的工具:https://tool.yuanrenxue.cn/curl)
3.定位参数sign
直接搜索sign:,打上断点,刷新,发现断点断住,查看内容,发现确实为加密的地点。
4.逆向sign
j = h(d.token + "&" + i + "&" + g + "&" + c.data)
发现sign即为j,其中d.token为固定字符串,写死;i为时间戳;g为判断表达式,可写死;c.data为请求的内容,如男鞋这种,也可写死。直接定位函数h位置,全扣,放入js代码中运行,发现有结果,将sign写入请求头,再请求,请求成功。
后记
在得知sign的长度为32位时,我尝试用md5直接加密字符串,发现结果不对,才去扣的h函数。像加密结果位16位、32位的可以试试用md5加密,结果为40位、64位、128位的可以试试SHA系列的加密。