声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我会立即删除并致歉。谢谢!
文章有疑问的,可以公众号发消息问我,或者留言。我每天都会看的。
字数 659,阅读大约需 4 分钟
前言
上一篇文章中,我们成功生成了ruoyi-app的apk文件。这本文中,将介绍uniapp框架的apk的常见特征、在存在客户端证书校验的情况下,如何通过frida脚本抓包。
uniapp apk的特征识别
dc/squareup
uni-
开头的文件名jadx反编译
io.dcloud.PandoraEntry
adb shell dumpsys window | findstr CurrentFocus
在该APP中,基座采用的是HbuilderX中自带的,自定义的是uniapp框架的js代码,所以常规的很难找到对应的入口。
解压APK,常见的uniapp框架的js代码,一般是从服务器上获取,打包进apk的只是一部分用于加载js的代码。
在
assetsapps__UNI__F04D7C1www
下就能看到源码抓包-未证书校验
抓包,代理到yakit上
抓包-证书校验
从网站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
中配置单向证书校验uni.configMTLS({
certificates: [{
'host': 'vue.ruoyi.vip',
'server': ['/static/ruoyi.cer'],
}],
success ({code}) {}
});
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
除此之外,我们还可以用ecapture
在Android设备上运行
./ecapture tls
参考资料
-
• UNI-APP渗透测试-抓包 https://bbs.kanxue.com/thread-282683.htm -
• https://uniapp.dcloud.net.cn/api/request/request.html#configmtls
欢迎关注公众号~~~
原文始发于微信公众号(进击的HACK):采用uniapp的apk如何识别以及如何抓包
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论