首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

精品连载丨安卓 App 逆向课程之三 frida 注入 Okhttp 抓包上篇

在Python中urllib2已经可以很好的完成网络通信的相关工作,但耐不住requests更为优雅和简介。...除此之外,将HttpUrlConnection和Okhttp3类比,只是因为它们都“比原生库优秀和更广泛使用”,这可以帮助理解,但两者是有区别的,requests是基于urllib3的封装,但Okhttp3...,原本的逻辑是每次点击按钮时打印一条日志,修改成每次使用Okhttp3发出请求,访问百度首页。...在真实场景中,我们的抓包返回结果往往是JSON数据,因此替换访问URL为"http://www.kuaidi100.com/query?...(网络请求可分为同步和异步方式,Android中主要使用异步方式,因此我们这里直接不讲同步请求,除此之外,GET和POST是两种常用的请求,这里先演示GET方式)。

4.8K30

HTTP请求配置客户端SSL证书

在学习安卓逆向的时候,遇到一个 APP,服务端检测请求的 SSL 证书,需要提交 SSL 证书上去才能正常发送请求。而在开启抓包和协议复现的时候,请求是能正常发出去,但是服务器会返回 400 错误。...说明​ 由于是服务端效验客户端发送的证书,所以使用代理服务器(FD,Charles 等)抓包是会替换本地证书,当服务器效验客户端发送的证书与服务器内的证书不一致,那么就直接返回 400 错误,实际上请求还是能够发送出去...俗称双向认证 所以解决办法就是在请求的时候,将正确的证书也一同发送过去,这样服务端效验时就会将正常的响应结果返回给客户端,也就是配置自定义证书。...例子​ APP 例子:隐约 具体如何拉取证书,就是安卓逆向相关的部分了,这里我也只提供证书文件,不提供 app。...配置成功将会得到正确的响应结果 { code: 998, msg: '系统维护中...

3.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    安卓端出现https请求失败的一次问题排查

    具体是这样,我们安卓版本的app是禁止截屏的(应该是app里做了拦截),但部分页面,支持配置成可以截屏。...https连接的过程中,服务端会把自己的证书(一般配置在nginx,我们这边就是负载均衡设备,F5)返回给app,app检查到返回的证书如果和本地内置的不一致,就可能报那个错; java.security.cert.CertPathValidatorException...这期间其实探索了很多可能性,比如也检查了waf设备(waf设备比负载均衡设备还要靠前,且waf工作在7层,也会涉及https的加解密,我是有怀疑过waf,但当时看了waf的日志啥的,没发现异常) 另外,...浏览器、手机等客户端访问我们时,我们就把证书返回给浏览器等,此时,他们怎么知道我们的证书是真的假的呢,就是靠证书里的颁发者字段,他们找到颁发者,再和自己浏览器内置的或者操作系统中内置的ROOT CA白名单做一个匹配...(一般接入那里应该是路由器,但一般好像也具有防火墙的功能),会根据客户端的网络来源于wifi和流量,走了不同的路线。

    98610

    快手抓包问题分析

    一般来说,常规方法无法抓安卓应用的 https 包,通常有以下几种可能: 证书信任问题。在 Android 7 以上,应用会默认不信任用户证书,只信任系统证书,如果配置不得当则是抓不到包的。...--cacert ~/.mitmproxy/mitmproxy-ca.pem https://www.baidu.com # 从证书文件中计算出用于放置在安卓中的文件hash名,假设结果为 a5176621...因此还是老老实实的把根证书放在默认路径下。 准备设备 为了方便测试,我在 arm 服务器上使用 redroid 准备了一台安卓虚拟机。...# 在本地主机上连接远程arm服务器上的安卓虚拟机 adb connect :5555 # 启动scrcpy scrcpy 到这一步骤时,可以检测安卓中的网络应该都已经是通的了...:8000 # 在 arm 服务器上配置iptables,将来源于安卓虚拟机但目的地不是arm服务器的流量重定向到一个无用端口。

    4.4K10

    Fiddler 抓取https请求

    引言   在日常测试中,不管是功能测试还是接口测试,避免不了抓包。抓包工具有很多,这里只讲fiddler的使用,并且是对https请求的抓取。   ...,证书就会认为请求非法,拒绝访问)   Fiddler抓包要求   从上面可以看到,fiddler相当于代理,客户端和服务器交互都要通过fiddler,Fiddler抓取HTTPS协议成功的关键是根证书...首先看一下安卓7.0以上的系统,抓包如下:    如果是安装7.0以下的版本,这里拿安卓4.0来演示,如图:   结论是android7.0以下版本,在模拟器下抓包https是没有问题的。...当然手机同样的版本也会支持。而高于7.0的安卓系统则抓不了https请求。 注意这里的https请求是没有携带CA证书到请求中去的。   ...Https双向验证,不是客户端的请求,拒接链接(这里服务端拒绝和客户端建立连接) 判断是否是使用WIFI代理(不可靠,可以通过hook跳过) 数据加密传输(很多app都是采用加密传输,要注意密钥的安全问题

    1.1K30

    app抓包之mitmproxy的安装和使用

    mitmproxy在安装后会提供一套CA证书,只要客户端信任了mitmproxy提供的证书,就可以通过mitmproxy获取HTTPS请求的具体内容,否则mitmproxy是无法解析HTTPS请求的。...注意: 有小伙伴反馈,安卓 7.0 以上版本不再信任证书,需要将证书安装到 root 路径下,这导致数据抓包不成功、手机应用网络不通。...博主还没有做过研究,想提示一下安卓 7.0 用户如果遇到这类问题,可以尝试使用模拟器降低安卓版本,看是否能解决问题,有时间的话麻烦把结果给博主反馈一下,谢谢!...(~c 200) & ~d baidu.com #显示域名包含baidu.com,返回不是200的请求 ~m post & ~u baidu #显示请求的链接里面包含baidu的post请求 ~d baidu.com...注意与“有效的 HTTP 错误返回”不是一回事,后者是一个正确的服务端响应,只是 HTTP code 表示错误而已。 2.

    4.9K21

    当黑客不学点mitmproxy怎么能行

    mitmproxy工作原理 特性 拦截HTTP和HTTPS请求和响应并即时修改它们; 保存完整的HTTP对话以供以后重播和分析; 重播HTTP对话的客户端; 重播先前记录的服务器的HTTP响应; 反向代理模式将流量转发到指定的服务器...; macOS和Linux上的透明代理模式; 使用Python对HTTP流量进行脚本化更改; 即时生成用于拦截的SSL/TLS证书 安装 在kali中已经默认安装了。...当手机访问网页时,我们在mitmproxy的窗口中便可以看到相关的数据了。 证书配置 目前我们只能得到http的数据,对于https的数据包,我们需要在手机端设置证书。...首先浏览器打开mitm.it,下载安卓证书。 默认下载位置download。然后设置-安全-更多安全设置-加密与凭证-安装证书-CA证书选择刚才下载的证书安装就行了。...测试 现在我们在手机浏览器中访问https的站点,便可以看到相关的数据包了。

    97720

    Android技能树 — 网络小结(3)之HTTPHTTPS

    结论: 安卓开发都是直接手机app直接发出请求到服务器,你看不到相应的url,而且你如果不用https的话,get和post都是明文,抓包抓一些也都看得到信息。...URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。...区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。...区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用CA证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥。公钥给别人加密使用,私钥给自己解密使用。...客户端解析证书: 这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等,如果发现异常,则会弹出一个警告框,提示证书存在问题。

    73230

    万字自动化测试面试题,助你吊打面试官

    本地环境: app 安装的手机环境和电脑搭建的自动化测试环境(比如安卓 SDK 等等) 。 2. 服务器环境: war 包部署的服务器, 服务器可以通过浏览器访问, 也可以通过 app 去访问。...(访问的是 web 程序的接口) 21. 简单介绍一下 Android SDK 的安装步骤: 1. 下载 jdk 和安卓 sdk 2....安卓中如何取出日志信息? 1. 把安卓系统日志信息实时导入到本地: adb logcat -v time > d:\mylog.log 2....Appium 都有哪些启动方式 1.客户端启动 2.命令行启动 28. 请简单介绍一下使用过的安卓UI自动化测试工具?...例如,客户端请求不存在的页面,客户端未提供有效的身份证验证信息) 5xx -- 服务器错误(服务器由于遇到错误而不能完成该请求)8.常见的返回码有: · 200 OK - [GET]:服务器成功返回用户请求的数据

    1K20

    不可错过的几款GitHub开源项目

    在实际项目中的应用,MVP中RxJava生命周期的管理…; 上述罗列的各种开源框架的使用方法; Java8 Lambda表达式和Stream API的用法; 怎样适配Material Design; ToolBar...技术点: 使用RxJava配合Retrofit2做网络请求 使用RxUtil对线程操作和网络请求结果处理做了封装 使用RxPresenter对订阅的生命周期做管理 使用RxBus来方便组件间的通信 使用...RxJava其他操作符来做延时、轮询、转化、筛选等操作 使用okhttp3对网络返回内容做缓存,还有日志、超时重连、头部消息的配置 使用Material Design控件和动画 使用MVP架构整个项目,...https://github.com/esoxjem/MovieGuide 9.SimpleNews 基于Material Design和MVP的新闻客户端。 效果图: ?...+ OkHttp3 做网络请求 OkHttp3 对网络返回内容做缓存, 还有日志、超时重连、头部消息的配置 V层基类的构建, 包括 BaseActivity 和 BaseFragment , 对外提供了相同的接口

    1.9K20

    掌握这些Android网络编程面试题,让你在面试中脱颖而出

    HTTPS协议 HTTPS就是在HTTP的基础上加了一层SSL/TLS加密,就像是给你的信件加了个保密信封。这样,即使信件在传输过程中被别人截获,他们也看不懂里面的内容。...SSL/TLS加密涉及到证书和信任链,证书就像是信封上的封条,证明这封信是安全的。 TCP/IP协议栈 TCP/IP协议栈就像是信件的邮递系统。它分为几层,每一层都有自己的职责。...在Retrofit和OkHttp中,连接复用是默认开启的,但你可以通过配置进一步优化。...如何处理网络请求的超时? 超时设置就像是给邮递员设定一个时间限制,超过时间就返回。在Retrofit和OkHttp中,可以通过设置超时时间来避免请求卡住。...如何实现网络请求的缓存? 缓存就像是把常用的信件内容保存起来,下次直接读取。在Retrofit和OkHttp中

    9400

    一文读懂Https的安全性原理、数字证书、单项认证、双项认证等

    其实这是因为在Android系统中已经内置了所有CA机构的根证书,也就是只要是CA机构颁发的证书,Android是直接信任的。对于此种情况,虽然可以正常访问到服务器,但是仍然存在安全隐患。...最简单的解决方案就是在客户端内置服务器的证书,我们在校验服务端证书的时候只比对和App内置的证书是否完全相同,如果不同则断开连接。...对于网上有些处理是直接返回true,即不对请求的服务器IP做校验,我们不推荐这样使用。而且现在谷歌应用商店已经对此种做法做了限制,禁止在verify方法中直接返回true的App上线。...单项认证保证了我们自己的客户端只能访问我们自己的服务器,但并不能保证我们自己的服务器只能被我们自己的客户端访问(第三方客户端忽略证书校验即可)。...客户端检查服务器送过来的证书是否和App内置证书相同。如果是,就继续执行协议;如果不是则终止此次请求。 d.

    2.5K20

    ⚡3分钟⚡熟悉面试常问状态码,面试官都听呆了

    · 203 - Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝,非权威性信息(HTTP 1.1新)。...4xx - 客户端错误 · 400 - Bad Request 请求出现语法错误。 · 401 - Unauthorized 访问被拒绝,客户试图未经授权访问受密码保护的页面。...IIS 定义了许多不同的 401 错误,它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示,但不在 IIS 日志中显示: · 401.1 - 登录失败。...· 401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用。 · 403 - Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。...· 403.13 - 客户端证书被吊销。 · 403.14 - 拒绝目录列表。 · 403.15 - 超出客户端访问许可。 · 403.16 - 客户端证书不受信任或无效。

    1.8K20

    高级自动化测试常见面试题(Web、App、接口)

    本地环境:app 安装的手机环境和电脑搭建的自动化测试环境(比如安卓 SDK 等等)。 服务器环境:war 包部署的服务器, 服务器可以通过浏览器访问, 也可以通过 app 去访问。...把安卓系统日志信息实时导入到本地:adb logcat -v time > d:\mylog.log 运行使用某个 app,实时获取该 app 的日志信息(cmd 里面的返回信息) : adb shell...都有哪些启动方式 1.客户端启动 2.命令行启动 14.请简单介绍一下使用过的安卓UI自动化测试工具?...15.请说明Android手机和IOS手机,系统有什么区别? 两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。...—URL的拼接(不同—参数转化为字典 拿到请求的返回值:解析返回值code,status,msg信息 断言 好处: 1、自动化测试用例和手工测试用例的完美结合,减少重复工作 2、配置灵活,可以自主切换测试环境

    4.6K30

    Retrofit解析2之使用简介

    你需要考虑网络状态,需要在请求失败后重试,需要处理HTTPS等问题,二这些事情让你很苦恼,而Retrofit可以将你从这些头疼的事情中解放出来。...当然你也可以选择android-async-http和Volley,但为什么选择Retrofit?...首先效率高,其次Retrofit强大且配置灵活,第三和OkHttp无缝衔接,第四Jack Wharton主导的(你懂的)。 在Retrofit2之前,OkHttp是一个可选的客户端。...而服务器和客户端,缺省都设置了标准和常见的MIME类型,只有对不常见的MIME类型,才需要同时设置服务器和客户端,以进行识别。...(一)、如何使用Retrofit和okHttp封装multipart/form-data 1、在retrofit2中: 使用** @retrofit2.http.Multipart : 标记一个请求是

    4.9K30

    在 Flutter 中发出 HTTP 请求的最佳库(2022 年)【Flutter专题31】

    “作者:坚果 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。...本文将向您介绍最好的开源软件包列表,这些软件包可以帮助我们在 Flutter 应用程序中发出 HTTP 请求。事不宜迟,让我们探索重要的事情。...10.5k+ License: MIT Written in: Dart Links: Pub page | GitHub repo | API reference Dio 是 Flutter 生态系统中增长最快的...该软件包为我们带来了许多非常有用的功能: 全局配置 拦截器 表单数据 取消请求 重试请求 文件下载 暂停 HTTPS证书验证 Http2 您可以通过运行以下命令安装 Dio: flutter pub add...类似,Chopper 是 Dart 和 Flutter 的另一个 HTTP 客户端生成器。

    2.9K10

    抓包神器之Charles,常用功能都在这里了

    Structure 视图将网络请求按访问的域名分类。 Sequence 视图将网络请求按访问的时间排序。 ? 下面将一一介绍这些如何配置和使用: 一....需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox...如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。 二....ios和安卓商城均可下载?)来做测试: ? ? ? ? 三....剩下的配置与Max下配置相同 SSL的问题: 最近iPhone系统更新到ios 10.3后,用Charles抓包竟然出现了一些问题,https的请求都会失败,提示错误信息为Failure SSLHandshake

    6K70

    HTTP应知应会知识点复习手册(上)

    2XX 成功 200 OK 204 No Content :请求已经成功处理,但是返回的响应报文不包含实体的主体部分。一般在只需要从客户端往服务器发送信息,而不需要返回数据时使用。...这样可以避免ssl剥离攻击:即攻击者在用户使用http访问的过程中进行攻击,对服务器冒充自己是用户,在攻击者和服务器中使用https访问,在用户和服务器中使用http访问。...在http 1.1中不能缺失host字段,如果缺失, 服务器返回400 bad request,http1.1中不能缺失host字段,但host字段可以是空值。...签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行签名; 客户端: 客户端 C 向服务器 S 发出请求时,S 返回证书文件; 客户端 C 读取证书中的相关的明文信息...在使用 XMLHttpRequest 的 POST 方法时,浏览器会先发送 Header 再发送 Data。 但并不是所有浏览器会这么做,例如火狐就不会。

    57530

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券