采用uniapp的apk如何识别以及如何抓包

admin 2025年6月24日21:51:40评论7 views字数 2859阅读9分31秒阅读模式
采用uniapp的apk如何识别以及如何抓包

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我会立即删除并致歉。谢谢

文章有疑问的,可以公众号发消息问我,或者留言。我每天都会看的。

采用uniapp的apk如何识别以及如何抓包

字数 659,阅读大约需 4 分钟

前言

上一篇文章中,我们成功生成了ruoyi-app的apk文件。这本文中,将介绍uniapp框架的apk的常见特征、在存在客户端证书校验的情况下,如何通过frida脚本抓包。

前文:如何将uniapp生成apk

uniapp apk的特征识别

APK包解压缩之后,根目录下存在dc/squareup
采用uniapp的apk如何识别以及如何抓包
3c4bd4af1f79441d8efa32e6b2106273.png
解压缩的apk目录中,常见以uni-开头的文件名
采用uniapp的apk如何识别以及如何抓包
b9f69f3daac2ae0b308d0ed71705b906.png

jadx反编译

AndroidManifest.xml查看入口Activity
io.dcloud.PandoraEntry
采用uniapp的apk如何识别以及如何抓包
44f6a0db3f9bfdb49c7ff8beb9587029.png
adb shell dumpsys window | findstr CurrentFocus
采用uniapp的apk如何识别以及如何抓包
3b9e6d25229dac0df8a5b78915770979.png

在该APP中,基座采用的是HbuilderX中自带的,自定义的是uniapp框架的js代码,所以常规的很难找到对应的入口。

解压APK,常见的uniapp框架的js代码,一般是从服务器上获取,打包进apk的只是一部分用于加载js的代码。

但本次是直接将ruoyi-app的代码放在前端。
assetsapps__UNI__F04D7C1www下就能看到源码
采用uniapp的apk如何识别以及如何抓包
f74e9871543d0c79835cbb90fbe78307.png

抓包-未证书校验

为进行签名校验时,可以正常抓包
抓包,代理到yakit上
采用uniapp的apk如何识别以及如何抓包
bdaaa3eb847488f9c3a4dd8cc8b4ffa2.png
在app-server.js中可以看到相关的API接口
采用uniapp的apk如何识别以及如何抓包
7f3e94956b282453a40753e2442ebd7c.png
采用uniapp的apk如何识别以及如何抓包
21e4527c8fd603fb90b55d8190303100.png

抓包-证书校验

从网站https://vue.ruoyi.vip/login导出crt证书,然后crt转cer
参考:

  • • 导出证书 https://blog.csdn.net/c5113620/article/details/80384660
  • • 证书转换 https://www.zhihu.com/question/401504013
RuoYi-App-v1.2.0utilsrequest.js中配置单向证书校验
采用uniapp的apk如何识别以及如何抓包
7a5cbb99414dfd91901b854baa62ddb6.png
uni.configMTLS({
  certificates: [{
      'host': 'vue.ruoyi.vip',
      'server': ['/static/ruoyi.cer'],
  }],
  success ({code}) {}
});
Hbuilder运行代码到Android设备,未代理到yakit时
采用uniapp的apk如何识别以及如何抓包
e808ec87033b8e4b57a8968ebfef0025.png
代理到yakit抓包时
采用uniapp的apk如何识别以及如何抓包
a07774569957372e09a7270b607481a3.png

uniapp抓包

Frida脚本:https://github.com/windy-purple/uni_app-Packet-capture

项目中的uni-app.js脚本,有一点需要注意的,就是在函数printResponse。该函数的目的是打印响应包,但在打印响应体的时候,用到了

var bodystr = bufferobj.readUtf8();

而在OkHttp中,response.body().source().readUtf8() 这种读取方式是一次性的,一旦你读取了数据流,它就不会再被应用程序读取到了。直接使用上述的脚本,app无法正常接收响应包。

替换脚本中的函数printResponse,新代码如下:

    function printResponse(response) {
        var code = response.code();
        var Headers = response.headers();
        var message = response.message();
        var Protocol = response.protocol();

        var content_type = Headers.get("Content-Type");
        var headers = Headers.toString();
        var protocol = Protocol.toString();

        console.log("[Response]:")
        console.log(protocol + " " + code + " " + message);
        console.log(headers);

        var responseBody = response.body();
        if (!responseBody) return response;

        var source = responseBody.source();
        var Long = Java.use("java.lang.Long");
        source.request(Long.MAX_VALUE.value); // 缓冲整个内容

        var buffer = source.buffer().clone();      // 克隆一个新的缓存,不消耗原有的

        if (ContentTypeIsPrint(content_type) == 1) {
            console.log(buffer.readUtf8());
        } else {
            console.log(buffer.readByteString().hex());
        }
        return response;
    }

执行脚本:

frida -U -f com.ruoyi.labs -l uni-app.js
成功打印了请求和响应
采用uniapp的apk如何识别以及如何抓包
17a41cdc9de2189338e2fe91ee371222.png

除此之外,我们还可以用ecapture
在Android设备上运行

./ecapture tls
也可以抓包包
采用uniapp的apk如何识别以及如何抓包
9aa776e24e00afedfe400aa8f89d0318.png

参考资料

  • • UNI-APP渗透测试-抓包 https://bbs.kanxue.com/thread-282683.htm
  • • https://uniapp.dcloud.net.cn/api/request/request.html#configmtls

欢迎关注公众号~~~

原文始发于微信公众号(进击的HACK):采用uniapp的apk如何识别以及如何抓包

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月24日21:51:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   采用uniapp的apk如何识别以及如何抓包https://cn-sec.com/archives/4196425.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息