对uni-app开发的某app安全分析

声明


以下只是搬运下我公众号的东西。很早就发过了。原帖地址:

对uni-app开发的某app分析

已经发公众号的为什么还发csdn
有的圈内朋友,不经过我的允许,删减摘录我公众号的内容,这里就不提谁了,心里清楚,还能获得一些关注和流量。很无语,所以我还不如自己也发发。【猛男落泪】

前言

偶然发现某个app,居然用的uni-app开发的,而且两三天更新一次,关键它还是热更新的,都不用在应用市场更新,直接自更新自动重启,我觉得这个还不多见,所以记录下来

而且比较骚的是,我最后居然用苹果手机搞定它的,别慌,我不太会ios的,大佬们别激动

目标:Y29t{deleteme}LnRpYW{deleteme}5xaW9u{deleteme}Zy5jb20=

分析

什么是uni-app

uni-app(uni,读you ni,是统一的意思)是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序、快应用等多个平台

说人话就是,它是跨平台的一种开发框架,这点跟flutter有点像,不过不像的是它的重点是在前端部分,所以开发出来的app,本质是一个类h5的app。

而由于其不是正统的安卓开发技术栈里的东西,所以也是不太好hook某个参数的,因为它是js生成的,跟安卓逻辑没有太大联系,就跟flutter一样,只能找找有没有跟java层相关的业务代码,看能不能hook了,如果不行,就难搞了。

有老哥可能会想,能用web端的hook手段操作吗,想一下,你怎么在手机上执行你的hook代码呢,怎么打断点调试啊?是不是感觉不太好操作。所以我个人觉得这才是它的难点

分析目标app

在我写这篇文章的时候,该app的安卓端已经有问题了,反正就是登录不上,很奇怪,但是不影响我们分析,因为ios端也有,用苹果手机看一样的(只是针对此时此刻来说)

抓包

老套路,打开app,抓包分析,整个抓包分析操作我是在苹果手机里操作的,一打开刷新数据页面:

卧槽,有某验验证,而且还是4代

没事,这个不重要,它不是我们本篇文章的重点

先手过,拿到接口,全程很轻松

现在的重点就是这几个参数了

timestamp和page不说了,token是登录后返回的,除了sign,其他的都是一些固定的参数

好的,今天的重点就是sign了

安全调试

常规分析

打开jadx,直接搜吧

没啥有用的,再搜,这个结果,这个类名,明显是sdk包的东西,也不对

别慌,因为它这个app是热更新,那么我卸载重装或者清除一下app的数据缓存,它一定会让我重新更新,那么我拿到更新包再看看,说不定有东西

一顿操作之后,重设置抓包环境,再打开app

一打开它就请求了个接口,应该就是用这个接口检测app版本,有更新就下载,没更新就跳过,应该就是这么实现热更新的,有点骚,说实话,我还很少在ios端看到能热更新的,跳过了每次的发版审核,还是牛逼

提示要更新,点完更新后(以上步骤也是在苹果手机上操作的)

看尿壶抓的结果,这个20M的东西就有点可疑了

复制这个链接,下载下来:

wgt后缀的文件是个什么勾8

wgt介绍

什么是wgt

.wgt文件扩展名是由三个用的应用程序。一个是Opera网络浏览器。这些.wgt文件称为使用这个浏览器作为一个小型的Web应用程序部件。这些文件包含有关部件配置,图像,索引,样式表,JavaScript的等信息,他们通常是在一个压缩归档格式。 .wgt文件也被称为包含了Xwindow的神经生物集群项目进来的记录文件二进制格式。应用程序的Xwindow神经生物集群被用来通过神经生物学家执行研究和该软件功能作为一个虚拟的工作站。该方案IMPS也利用了的.wgt以文件扩展软件来实现其功能,如普查和调查数据的处理。这些.wgt文件收集的人口普查局的数据,并使用该软件保存。这些文件所使用的调查和专业人士进行调查统计和普查任务。

wgt如何打开

Opera浏览器可以打开,不过这里不重要,我们不用直接打开它

说实话,我看了半天wgt介绍没看出个所以然

直接干吧

既然它是热更新,不管了,直接改成zip文件后缀,然后解压

插一句,其实也可以改为apk文件(我在苹果端下载的一样可以),用jadx打开,一样可以显示,然后分析

或者也可以用jadx另存为gradle,然后用android studio打开,结果也一样,就不展示了

再看这些文件,不就是uni-app的文件吗(搞过前端开发的朋友应该比较熟悉),直接找sign在哪个文件里面就行了,肯定不能乱找,uni-app既然是个前端框架,那只找js文件吧,再看文件名,根据MVC规范,我猜要嘛在app-config,要嘛在app-server里

果不其然,就在app-server里了,打开文件发现这个js都没啥混淆,直接能看到的,这不就跟分析web网站一样了吗,只是没法动态调式

再次一顿搜索:
 

79个结果,感觉还是有点多,不想一个一个翻了,重新请求一下接口,再看看:

说实话,看着真像一个md5,然后做了大写转换,那直接搜下toUpperCase

很快就找到了:

就是这里了,接下来就是算法实现了

算法实现+验证

首先看下接口的参数:

用python实现:

能对上,搞定,接口请求

搞定!

结语

整个过程比较轻松加愉快,嘿嘿,本质上不算难,只是uni-app的确实不多,资料很少。主要这个app其实js没有做混淆,并不是难搞的那种,假如哪一天做了混淆或者上了jsvmp啥的,就难说了

想要技术交流的朋友们,加我wxID:geekbyte

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app开发app端时,可能会遇到以下一些安全性问题: 1. 客户端漏洞:在app端开发中,客户端可能存在漏洞,例如不安全的代码编写、未经验证的输入等。攻击者可以利用这些漏洞进行代码注入、跨站脚本攻击(XSS)等。 2. 数据传输安全:在app端与服务器之间的数据传输过程中,如果没有适当的加密机制,攻击者可能会截获敏感数据。因此,使用HTTPS协议进行数据传输是一个重要的安全措施。 3. 身份验证与授权:在app中,用户的身份验证和授权是非常重要的。如果身份验证机制存在漏洞,攻击者可以冒充合法用户的身份进行恶意操作。因此,需要使用安全的身份验证和授权机制,例如使用令牌(Token)进行用户身份验证。 4. 代码混淆与反编译:由于uni-app开发app是基于前端技术实现的,攻击者可以通过反编译app获取源代码,并进行逆向工程分析。为了增加代码的安全性,可以采用代码混淆技术来对代码进行保护。 5. 动态加载与远程代码执行:uni-app支持动态加载远程代码的功能,这也增加了一定的安全风险。如果不对加载的代码进行有效的验证和过滤,攻击者可以通过远程代码执行漏洞进行攻击。 为了提高app端的安全性,开发者可以采取以下措施: - 定期更新与升级:及时更新uni-app框架和相关插件,以修复已知的安全漏洞。 - 代码审计与测试:进行代码审计,发现潜在的安全问题,并进行相关测试以确保代码的安全性。 - 安全编码实践:采用安全编码实践,例如避免使用不安全的函数、过滤用户输入等。 - 强化身份验证与授权:使用安全的身份验证和授权机制,例如使用双因素身份验证、限制权限等。 - 加密与传输安全:使用合适的加密算法和协议保护数据传输的安全性。 以上是一些常见的uni-app开发app端时可能遇到的安全性问题和相应的解决方案。开发者在开发过程中应该注重安全性并采取相应的措施来保护用户数据和应用程序的安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值