最近发现某app无法抓包,使用hooker的url.js发现使用的为okhttp3;okhttp3可设置proxy为no_proxy,则不走系统代理,导致无法抓包。
解决办法
Frida hook proxy 函数,修改proxy值,可直接设置proxy为burpsuite代理,即可愉快的抓包,另外一种方式,设置proxy为null,测试不能抓包,不知道原因
```javascript
Java.perform(function() {
var okhttp3 = Java.use('okhttp3.OkHttpClient$Builder');
okhttp3.proxy.implementation = function(x) {
var proxyObject = Java.use('java.net.Proxy').$new(Java.use('java.net.Proxy$Type').HTTP.value, Java.use('java.net.InetSocketAddress').$new('10.222.7.102', 8080));
// Modify the behavior of noProxy() method
// For example, return a custom list of hosts that should not use a proxy
console.log('no_proxy setting');
var result = this.proxy.call(this, proxyObject);
console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
return this.proxy.call(this, proxyObject);
};
});
文章描述了在遇到某app使用okhttp3库且无法通过常规方式抓包的情况,解决方案是通过FridaHook修改okhttp3的proxy设置,将代理设为BurpSuite代理,从而实现抓包。另一种尝试是设置为null,但未能成功抓包。
1847

被折叠的 条评论
为什么被折叠?



