逆向网址
aHR0cHM6Ly93d3cueGlhb2hvbmdzaHUuY29tL2V4cGxvcmU=
参数定位分析(跟栈法)
在进行接口逆向工作时,首要任务是精准定位目标接口。经观察,逆向接口的网址中含有 “v1/homefeed” 字段,我们就以该字段为切入点设置 XHR 断点。接下来,通过下滑页面的操作,使程序断在预先设置的 XHR 断点处。
进入断点调试环境后,在作用域里仔细搜寻我们所需要的 “x - s” 参数。经查找发现,所有请求头部参数都包含在 “g” 中。为弄清楚 “g” 的值来源,我们沿着代码逻辑向上追溯。发现 “g” 是由 “e.headers” 赋值得到的,而 “e” 是函数参数,于是继续向上进行跟栈调试。
在此位置下断点并重新刷新页面继续调试,仍然是由函数的传参得来,我们向上跟栈调试,最终跟到了这两个异步栈当中,我们分别在这两个异步栈中下入断点,刷新页面。随后一直释放断点知道出现我们所需要的参数
并且是在这个异步调用栈之后,所以我们在这个调用栈下断点,并准备进行hook,重现刷新页面,在processSend栈中下入如下hook函数
(function() {
'use strict';
var x-s = {}; // hook x-s
Object.defineProperty(r.headers, 'X-s', {
set: function(val) {
console.log('x-s set->', new Date().getTime(), val);
debugger;
x-s = val;
return val;
},
get: function() {
return x-s;
}
});
})()
完成上述操作后,释放所有已设置的断点。由于 hook 函数的作用,程序会自动在 “debugger” 处中断。
此时,向上跟栈便能找到参数的赋值位置。
经过简单分析可知,“v” 函数实际上就是 “window.window._webmsxyw” 函数,此函数即为我们苦苦寻找的加密函数。
所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用,并严格遵守相关法律法规,如《中华人民共和国网络安全法》。作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
文章中涉及的程序或方法仅供安全研究与教学之用,严禁用于非法目的,如未经授权的入侵、破解等。若读者将信息用于其他非法用途,由读者承担全部法律及连带责任,相关方不承担任何责任。
未经授权使用文章中的技术资料对任何计算机系统进行非法操作,由此产生的直接或间接后果和损失,均由使用者本人负责。