*本案例仅做分析参考,如有侵权请联系删除
一、抓包+重放
重放时发现返回请求已过期,猜测是请求参数带有时间戳,服务器对时间戳进行时效验证。
{
"Code": ...,
"ResultMsg": "请求已过期."
}
经过验证发现在DeviceInfo中有毫秒级时间戳Timestamp,且有个酷似base64的数据Secret,其中\u003d代表=,替换后在页面中解码发现解出个类似md5的数据,eda4537aa0a6a01b642f19dd1a8a0998,大胆猜测是不是Timestamp直接做的md5,验证了下发现不是,应该是加盐了,接下来分享代码。
{
…………
"Timestamp":"1659957430410",
"Secret":"ZWRhNDUzN2FhMGE2YTAxYjY0MmYxOWRkMWE4YTA5OTg\u003d"
}
二、Java层分析
首先看下是否有壳,豁!还是360壳,二话不说直接上Frida-DEXDump,不会使用的可以看这篇文章: