【原创】利用骚姿势绕过代理屏蔽和单向验证的方法汇总

APP使用okhttp框架代理屏蔽的解决方法

大多数进行渗透测试的时候都可以使用burp抓包,但有的app的部分功能会使用okhttp框架,这种框架会使App不使用默认的系统代理,解决方法就是通过proxy的方式走charles,下面是具体使用方法;

安装并调试charles

1,首先设置charles的端口;

image-20220506172159857

2,Charles SSL 代理配置, 点击Proxy -> SSL Proxying Settings, 添加信任地址 【host】:443 ( 全信任的话 可以配置 *:443 ) 和打开Enable SSL Proxying

image-20220506174717209

3,先在PC上选择安装证书;

image-20220506175642805

4,然后在导出cer证书;

image-20220506175953521

4,手机端安装证书;

image-20220506180334693

5,在设置一层代理,将数据包再转给burp;

image-20220506180708468

image-20220506192804691

安装并调试postern

在手机模拟器中安装postern代理,并先设置http代理;

image-20220506173040430

然后设置代理sock;

image-20220506173313533

然后设置匹配规则;

image-20220506173700284

小结

手机安装Postern,然后APP的流量包通过Postern-->charles-->burp,通过这种方式就能绕过APP的okhttp框架代理的限制,从而可以抓到想要的数据包。

小实战一把

选用一个线上知名的APP,选择忘记密码选项,然后点击发送验证码;

image-20220506203829486

获取下返回包;

image-20220506204021495

得知正确的返回包的json格式如下;

HTTP/1.1 200 OK
Date: Fri, 06 May 2022 12:48:43 GMT
Content-Type: application/json; charset=UTF-8
Connection: close
Content-Length: 35

{"errorlog":"2031","success":false}

验证码如下:

{"items":[],"bookAppTempFrees":[{"activityType":-1,"ttl":0,"nid":363777,"discount":0.0,"price":0,"activityName":"","gid":100363777,"originPrice":0,"tempFree":false},{"activityType":-1,"ttl":0,"nid":161251,"discount":0.0,"price":0,"activityName":"","gid":100161251,"originPrice":0,"tempFree":false},{"activityType":-1,"ttl":0,"nid":171511,"discount":0.0,"price":0,"activityName":"","gid":100171511,"originPrice":0,"tempFree":false}],"errorlog":"","success":true}

得出结论是4位的验证码,那就尝试包里破解,发现做了限制;

image-20220506205234209

然后转换下思路,换个自己的账号登陆成功后,截取返回给前端的json,然后用在任意手机的返回上;

居然成功了。。。。可以进入重置界面。。。。

image-20220506210554933

绕过单向认证绕过

用XP框架的JustrustME来绕过,自动化检测是否存在单向认证,如果有他帮你hook[他会帮你卡住让app不进入检测证书的环节

https://www.jianshu.com/p/3382cc765b39

软件如下:

image-20220506212419609
具体安装流程可以参考视频:
https://www.bilibili.com/video/BV1xh411a7h3?from=search&seid=12354466957407980525&spm_id_from=333.337.0.0

把xponsed依赖的组件放入手机

image-20220506213513408

然后将文件进行转移;

//挂在linux外的文件
mount -o remount -w /system

//转移文件
cp -r /storage/sdcard0/Pictures/224 /system  

//权限报错就加权限
chmod -R 777 /storage/sdcard0/Pictures/224

//改名好记
mv 224 xposed

//进入文件夹执行
sh script.sh

image-20220506220846799

然后打开主APP,发现安装成功了,但没有激活,重启下模拟器;

image-20220506221005277

重启完毕,发现激活

image-20220506221124443

安装JustTrustMe.apk

提示没激活就勾上选项,接下来单向认证的内容就可以自动hook。

image-20220506221548580

总结

代理屏蔽:app不走系统代理[最常见] okhttp框架
破局:利用软件挂VPN 走charles再链接burp改包;

单向认证,证书绑定 (必须要有证书 app得有证书) 客户端检测服务端
破局:
hook[我们通过技术手段不让代码执行哪一块]
解包app,改代码,捞里面的合法证书,拿来伪装;

双向认证:客户端、服务端都检测;(需要二进制功底)
posted @ 2022-05-06 22:32  黑羽heiyu  阅读(1580)  评论(0编辑  收藏  举报