chatGPT与逆向的相遇,快速解决sslpinning抓包问题

这篇具有很好参考价值的文章主要介绍了chatGPT与逆向的相遇,快速解决sslpinning抓包问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

这是一款金融类型的安卓app,有着root检测,与sslpinning校验,并且带有壳。下载的unpinning脚本根本行不通,接下来咱们看看该怎么去分析。众所知周,要分析一款app抓包只是第一步。偏偏是第一步就难倒不少人,本文只做知识要点记录,均会脱敏处理。大佬们轻喷


问题描述

一般来说我们拿到apk都迫不及待的装到手机上,立马开始抓包,结果就会和下图一样

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 文章来源地址https://www.toymoban.com/news/detail-444559.html

 

Charles这边是这样显示的

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 

 初步判断是存在sslpinning校验

 


sslpinning校验定位:

把apk拖动到apk,发现加壳了,随后使用frida-dump进行脱壳,拿到dex,使用jadx-gui进行反编译。

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 经过r0capture 工具可以定位出网络包收发位置,以下是在总众多调用栈寻找到正确的调用栈:

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 接下来直接偷懒,不得不说gpt的面世,给各行各业都带来了便利,对于安卓逆向而言,ai简直就是一个学习导师不厌其烦的解答,随后我们将以上调用栈发送给gpt。问问它,哪里才是最有可能是sslpinning校验的地方,大家最好是以开发人员的角度去提问。

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 最终我们在第二行找到了和证书校验有关的地方,也就是

okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:336)

在jadx-gui工具搜索上面的类名,在类中找到如下代码:

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 

hostnameVerifier()此函数将我们需要使用frida hook的函数方法,在这个对象里还有verify方法,看verify函数形参是传递了2个参数,分别是一个url网址和session,我们先hook 一下verify函数得到如下信息:

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 参数1也确实是一个url网址,并且和我们抓包工具的域名一致,接下来我们看看hostnameVerifier函数是什么样的

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 

它会返回一个HostnameVerifier类型的数据,继续hook hostnameVerifier() 函数,打印返回值

 

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

明显打印不出来,使用JSON.stringify()将这个object对象转字符串得到以下信息

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 

 从图中得知实例的类型和类的实现路径,我们把实现的类路径去jadx-gui搜索一下,得到如下:

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 以上图中的verify()是一个native修饰过的函数,具体实现流程在so,由于经过测试只要返回true,就能正常抓包了。就不再深入分析。

chatGPT与逆向的相遇,快速解决sslpinning抓包问题

 

附上frida的完整hook抓包代码:

Java.perform(function(){
    
    console.log("===start===");
    Java.enumerateClassLoaders({
        onMatch: function (classLoader) {
            try {
                if (classLoader.findClass("com.xxxx.http.RetrofitClient$createRsaOkHttpClient$1")) {
                    console.log("===success===");
                    Java.classFactory.loader = classLoader; 
                    var RetrofitClient$createRsaOkHttpClient$1 = Java.use("com.xxxx.http.RetrofitClient$createRsaOkHttpClient$1");
                    RetrofitClient$createRsaOkHttpClient$1["verify"].implementation = function (str, sSLSession) {
                        console.log('verify is called' + ', ' + 'str: ' + str + ', ' + 'sSLSession: ' + sSLSession);
                        // var ret = this.verify(str, sSLSession);
                        // console.log(ret);
                        return true;
                    };

                    var RetrofitClient$createOkHttpClient$1 = Java.use("com.xxxx.http.RetrofitClient$createOkHttpClient$1");
                    RetrofitClient$createOkHttpClient$1["verify"].implementation = function (str, sSLSession) {
                        console.log('verify is called' + ', ' + 'str: ' + str + ', ' + 'sSLSession: ' + sSLSession);
                       
                        return true;
                        
                    };
                }
            } catch (e) {
            }
        },
        onComplete: function () {
        }
    });

    try {
       
    } catch (e) {
    }

       
    
}); 

 上述的frida代码主要功能是枚举所有的classloader查找指定类名进而实现hook,在dex没完全加载完成是找不到类的。我们需要遍历所有classloader。


 

 

到了这里,关于chatGPT与逆向的相遇,快速解决sslpinning抓包问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决APP抓包问题【网络安全】

    在日常渗透过程中我们经常会遇到瓶颈无处下手,这个时候如果攻击者从APP进行突破,往往会有很多惊喜。但是目前市场上的APP都会为防止别人恶意盗取和恶意篡改进行一些保护措施,比如 模拟器检测、root检测、APK加固、代码混淆、代码反调试、反脱壳、签名校验 等等对抗

    2023年04月21日
    浏览(41)
  • VMOS+小黄鸟无root抓包(解决抓包无网络问题)(附工具)

            最近在搞手机安卓抓包,看了网上很多教程都没有解决抓包无网络问题。于是费了一上午时间找遍全网终于解决了,在此分享给大家参考。 1. vmos pro破解版 2. 小黄鸟 3. JustMe 4. JustMeplus 5. JustMeAlreadly 6.MT管理工具 1 ,在真机中安装vmospro和小黄鸟,开启超级用户和Xp

    2024年02月02日
    浏览(56)
  • 如何解决APP抓包问题【网络安全】

    在日常渗透过程中我们经常会遇到瓶颈无处下手,这个时候如果攻击者从APP进行突破,往往会有很多惊喜。但是目前市场上的APP都会为防止别人恶意盗取和恶意篡改进行一些保护措施,比如 模拟器检测、root检测、APK加固、代码混淆、代码反调试、反脱壳、签名校验 等等对抗

    2024年02月08日
    浏览(45)
  • 彻底解决charles抓包https乱码的问题

    最近做js逆向,听说charles比浏览器抓包更好用,结果发现全是乱码,根本没法用。 然后查询网上水文:全部都是装证书,根本没用! 最后终于找到解决办法,在这里记录一下: 乱码的根本原因: charles证书过期了! 此时就算往操作系统导入证书也没有用! 解决办法: 菜单

    2024年01月18日
    浏览(52)
  • selenium解决巨难的js逆向滑块验证问题!!!

    需要控制滑块,完成访问验证   使用selenium进行滑块识别,总是失败。 网站识别出是机器在进行爬取。 实现规避检测,让网站检测不到。 2、调整Chorme特征值 让系统不认为chorme是机器在操作 用16进制编辑器打开 Chormedriver.exe , 查找并替换 $cdc_lasutopfhvcZLmcfl 为等量字符的内容

    2024年02月13日
    浏览(45)
  • 解决使用 libcurl 与 Charles 抓包的问题

    在使用 C++ 发送网络请求时,利用 libcurl 是个不错的选择。然而,有时候我们需要使用 Charles 抓包工具来检查这些请求,但可能会遇到无法抓取请求包的情况,或者 libcurl 提示代理名称无法解析等问题。 要抓取 libcurl 的请求,需要设置代理。下面的代码演示了如何通过 libcu

    2024年02月05日
    浏览(52)
  • 某购票平台APP的抓包问题(解决过程)

    某购票平台App的抓包问题(解决实现) 软件地址: aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzY2MjI2MjgvaGlzdG9yeV92MjAyMzAxMTE=(BASE64) App版本: 5.2.1 手机: Google Son (Pixel 4)  系统: Android 11 本文利用工具: HttpCanary Frida Objection JADX 一 、先判断问题 利用Charles抓包不出包,为了方便我用的是httpCanary,指定该

    2024年02月08日
    浏览(46)
  • leetcode 141.环形链表 I - 142.环形链表 II 代码及指针相遇证明问题

    给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 如果链表中存在环 ,则返回 true 。 否则,返回 false 。 思路: 快慢指针问题 。我们可以声明一个 fast 指针(一次走两步),声明一个 slow

    2024年02月12日
    浏览(64)
  • mitmproxy 安卓模拟器/手机抓包教程(解决证书问题)

    本文主要解决的是 Android 模拟器/手机的抓包证书问题 。 也就是报“java.security.cert.CertPathValidatorException”错误的问题。 首先要启动 mitmproxy,三个版本任选。 打开 mitm.it。 如果页面上只有一行大字“If you can see this, traffic is not passing through mitmproxy.”,说明你没有正确配置代理

    2024年02月09日
    浏览(47)
  • fiddler抓包问题记录,支持https、解决 tunnel to 443

    fiddler抓包教程,如何抓取HTTPS请求,详细教程 1. 不能正常访问页面(所有https都无法访问) 解决方案:查看下面配置是否正确 Rules-customization 找到 OnBeforeRequest 方法,在方法最后添加以下代码块 2.tunnel to 443(部分https无法访问) 解决方案:确认证书安装成功,并信任证书 下

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包