关于抓包过滤:移动开发手机抓包

在挪动利用开发过程中,咱们会应用Charles和Fiddler进行抓包。通常要抓取HTTPS加密的数据包,个别应用Charles或者Fiddler4代理HTTP申请,配置证书信赖后,便可拿到明文报文。然而因为Charles证书和Fiddler证书并非证书机构颁发的指标站点的非法证书,所以会不被信赖。要解决这个问题,咱们须要应用到Xposed+JustTrustMe工具来敞开SSL验证。 一、 Charles应用1.1 配置Charles关上Charles,而后点击【Proxy】 -->勾销勾选 【windows proxy 】,如下图。 1.2 代理https并增加证书点击【Proxy】-->【SSL Proxy Settings】弹出SSL代理设置界面 。而后,选中【Client Certificates】增加域名的证书,如下图。而后,抉择 【Help】--> 【ssl proxy 】->【 Install Charles Root Certificate】,装置实现之后,再抉择【Install Charles Root Certificate on a Moblie Device or Remote Browser】,如下图所示。接下来,关上手机中的wifi设置,将电脑和手机连贯在同一个wifi环境下,在手机端中批改以后wifi设置,将代理抉择手动,服务器主机名填入域名,服务器端口输出8888即可。而后,关上浏览器输出【chls.pro/ssl】回车会进入charles证书下载,加载之后是一个.pem文件,须要重命名更成成.crt后缀,这是手机端的证书安装包,间接关上装置即可. 失常来说,步骤到这就算实现了。然而如果手机是安卓7当前的版本,就会失败 始终是“unknow”,这是因为应用程序不再信赖用户或管理员增加的CA用于平安连贯。对于这种问题,咱们须要在Android应用程序中增加ssl信赖配置。关上Android利用的Mainfest.xml文件,增加如下内容。 <application ... android:networkSecurityConfig="@xml/network_security_config" >而后,新建network_security_config.xml文件,增加如下脚本。 <?xml version="1.0" encoding="utf-8"?><network-security-config> <base-config cleartextTrafficPermitted="true" /> <domain-config> <domain includeSubdomains="true">api.xj.mydeertrip.com</domain>//须要抓包的域名 <trust-anchors> <certificates src="@raw/charles"/>//手机中下载的.pem格局证书文件 名称 </trust-anchors> </domain-config></network-security-config>其中,charles是.pem文件名,就是手机中下载的.pem证书文件放入工程的res/raw文件夹中即可。 如何配置Https,能够参考Charles 如何抓取https数据包 二、 Burp Suite2.1 装置Burp Suite2.1.1 下载Burp Suite如果还没有下载Burp Suite,能够应用上面的地址下载Burp Suite下载链接。而后,咱们下载macOS Burpsuite注册机,解压注册机和汉化包,在终端中关上 BP 程序内置的 JAVA 文件门路。 cd /Applications/Burp\ Suite\ Professional.app/Contents/java/app && open .而后,将咱们下载的macOS Burpsuite.zip的解压内容拷贝进去,如下图所示。 ...

January 25, 2021 · 1 min · jiezi

关于抓包过滤:安卓手机安装Charles证书后抓取的请求依然为unknown

安卓7.0有平安爱护,用户级别的证书在大部分app中无奈通过验证。(charles装置的证书就是用户级别的) 解决方案: 用一个安卓版本7.0以下的手机。获取手机root权限,将证书增加到零碎级别中。点击查看解决方案应用iphone,ipad操作。ps:当初的手机取得root权限比拟难。 参考资料:https://blog.csdn.net/weixin_41508948/article/details/81908887?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.none

January 21, 2021 · 1 min · jiezi

关于抓包过滤:Charles-windows10-配置HTTPS抓包证书配置问题

如果曾经装置证书 cmd下执行 certmgr.msc能够看到以后所有的证书 看是否装置到这个文件夹下如果没有,装置时记得抉择: 装置到这个地位

November 3, 2020 · 1 min · jiezi

安卓70及以上版本抓包https失败解决方法

现象android7.0以上的手机https抓包失败(安装了https证书也不行) 原因android7.0+的版本新增了证书验证(系统证书) 解决办法前提:在手机端和电脑端都必须安装https的安全证书配置:打测试包时,项目设置默认信任所有证书(系统+用户)1.在工程res-xml目录中创建一个名为 network_security_config.xml的文件,文件内容如下: <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" overridePins="true" /> <certificates src="user" overridePins="true" /> </trust-anchors> </base-config></network-security-config>2.在AndroidManifest里的<application>标签中,添加如下代码: android:networkSecurityConfig="@xml/network_security_config"重新打包项目,然后抓包,即可成功。 webview抓包失败上面可以解决android原生抓包问题,但在android7.0以上的手机,开着网络代理访问不了webview,若要抓包webview,需要在webview的WebViewClient中,将一行代码给注释掉: super.onReceivedSslError(view, handler, error)这样是为了忽略掉SSL证书错误,因为开启代理后网络会变得不安全,证书会报错误,webview检测到证书错误之后就不请求任何数据。 注释是为了忽略掉父类的处理,默认执行下去。 警告这样的配置操作是敏感且危险的,只能用于测试环境方便抓包,线上包一定注意要恢复配置。后记通过查找资料,还有一个方法,通过重载WebViewClient的onReceivedSslError()函数并在其中执行handler.proceed(),即可忽略SSL证书错误,继续加载页面,代码如下: WebView webview = (WebView) findViewById(R.id.webview);webview.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // 不要调用super.onReceivedSslError,因为其包含了一条 handler.cancel(),第一次访问时无法加载,第二次以后可以加载 // super.onReceivedSslError(view, handler, error); // 忽略SSL证书错误,继续加载页面 handler.proceed(); }}

July 3, 2020 · 1 min · jiezi