基础入门-APP应用&微信小程序&原生态开发&H5+Vue技术&封装打包&反编译抓包点
-1

演示案例:

  • 移动App-开发架构-原生&H5&封装等
  • 微信小程序-开发架构-原生&框架&封装等

#APP应用开发架构:

1、原生开发

安卓一般使用java语言开发,当然现在也有kotlin语言进行开发。如何开发就涉及到具体编程了,这里就不详说了。简单描述就是使用安卓提供的一系列控件来实现页面,复杂点的页面可以通过自定义控件来实现。

2、使用H5语言开发+VUE

使用H5开发的好处有很多,可多端复用,比如浏览器端,ios端,当然H5开发的体验是没有原生好的。结合我做过的项目来说,一般是这个页面需要分享出去的话,就用H5开发。

3、使用flutter开发

flutter是近年来谷歌推出的一款UI框架,使用dart语言进行开发,支持跨平台,weight渲染直接操作硬件层,体验可媲美原生。但是flutter技术比较新,生态还不完善,开发起来效率相对偏低。

4、常规Web开发

Web App软件开发简单地说,就是开发一个网站,然后加入app的壳。Web App一般非常小,内容都是app内的网页展示,受制于网页技术本身,可实现功能少,而且每次打开,几乎所有的内容都需要重新加载,所以反应速度慢,内容加载过多就容易卡死,用户体验差,而且app内的交互设计等非常有效。但开发周期长端,需要的技术人员少,成本低。

#APP-开发架构-原生态-IDEA

演示:remusic项目源码(这是一个java写的Android程序)我们可以在电脑上安装安卓模拟器来打开这个apk文件,这里我用的是逍遥模拟器

这个就是它的app,我们打开看看

打开我们可以看到,它就是一个音乐播放器

我们看下它的源码,我们从两个维度讲,一个是从它源码的角度分析,另外就是我们从渗透测试的角度看它

我们用IDEA来查看它的源码

我们可以通过搜索关键字,定位它的代码段,我们在上面看到了歌曲、歌单、排行榜这些字样,那么我们就可以搜索一下

这样我们就跟通过搜索代码段的方式,就对应上了以上字段功能

在实际渗透测试过程中,我们是很难获取到它的源码的,那么这时候我们就可以通过逆向、反编译的角度来获取它大部分的源码

逆向、反编译:

NP管理器:

http://normalplayer.top/

我们打开np管理器,打开安装包提取

选中我们要提取的apk

定位到文件目录

选择这个安装包,点击查看

对classes.dex文件进行反编译

以下就是它的源码了

我们可以通过源码角度,通过idea去对比一下二者之间的区别
就拿这个文件路径作为对比
remusic-master\app\src\main\java\com\wm\remusic\fragmentnet\TopFragment.java

源码是这样的,我们接下来通过反编译手段来查看一下,二者之间有没有差别

打开np管理器,通过上述的文件路径来定位到我们要对比的那个代码文件

找到这个文件了,我们发现此时的代码并不是那么直观可读的,我们可以点击右上角三个点图标,把它转换为java代码
我们可以结合上面来对比一下,看一下它们之间代码的相同性

如果说你后续碰到了这个apk啊,拿到了它的源代码,他的源代码中能帮助我们做到啥事情呢?
假设源代码有有一些配置文件,配置文件中写了一些配置信息,比如说里面有数据库账号密码啊、第三方的api接口啊、云方面的一些泄露啊、这些都可以成为一个突破口,或者我们可以改动这个apk文件,突破它的一个会员限制啊、那个就是我们后续要讲的破解逆向的知识点了,如果单从渗透测试来讲的话,从源码中提取一些价值资产或者是一些配置信息,为我们的渗透测试做准备

这是从源码的角度来看 还有一种是通过抓包技术(一个是从内在提取价值信息,一个就是从外在提取价值信息)

HttpCanary:https://github.com/mingww64/HttpCanary-SSL-Magisk

我们打开HttpCanary

点击左上角三条杠,选择目标应用(意思就是只抓这个应用数据的流量包)

我们把我们要抓包的app给添加进来

返回,点击右下角的飞机图标开始抓包

我们打开目标应用,来看下抓包结果

返回到HttpCanary,查看详细的抓包信息

可以看到,它尝试访问了tingapi.ting.baidu.com这个接口,也就是这个播放器可能是调用了第三方的听歌服务,如果说这里它不是请求第三方的api,而是请求了自己网站,那么这里是不是就能抓到它网站的信息,从而我们就可以转到web渗透了

这是通过抓包技术看到了它的这个数据包,我们看看源码中能不能体现出来呢

我们在源码中搜索一下这个接口地址看看能不能找到

也就是说,针对这种移动端app,你反编译源码也能提取到一些资产信息,不能拿到源码时,你通过抓包技术也能提取一些资产信息,所以说它的测试是多维性的,这些资产就能成为你渗透测试的一些思路点

安全影响:反编译&流量抓包&常规测试

安全影响:逆向的角度去分析逻辑设计安全

#APP-开发架构–Web封装-封装平台

演示:ShopXO源码程序+多豆云打包

网站打包目标:https://shopxo.net

多豆云打包平台:https://www.ofcms.com

我们现在要针对于shopXO这个网站,生成一个针对于安卓系统的一个移动app,我们首先先打开这个站点,初步的看一下这个网站的页面架构

点击进去,往下滑,找到它的演示站点

我们访问这个域名,进入到它的演示站点

可以看到,它的网站就长这个样子

我们也看到我们接下来要封装的网站页面了,接下来我们就可以着手准备封装步骤了

封装步骤:

1.打开多豆云在线封装平台,把我们要封装的网站网址填写进去

2.点击立即生成,选择你要生成的平台,这里我们以安卓平台举例

3.把生成后的安装包下载到本地

注意!这时候生成出来的安装包是没有签名的状态,你是无法正常安装上去的

这种情况有两种解决方案,一种是利用多豆云在线生成平台,花费10元钱去生成一个带有签名的apk文件

点击右上角进入工作台,登录进去

登录进去实名认证后,我们就能看到如下界面
还是把你的信息填写进去,付费十元钱后, 我们就能得到一个带有签名一个APK文件了

还有一种方式是利用np管理器的捐赠功能,它可以生成一个测试用的签名文件,捐赠功能我就不细说了,那里面都有着非常详细的指引

我们打开np管理器,找到那个安装包,点击功能

点击一键随机签名APK

补充:目前多豆云在线封装平台,有很大的概率是需要付费生成的了,这一点从我上述生成的安装包可以看的出来,它的文件大小只有5字节,相当于生了个坏包,这种受损的安装包,即使你通过np管理器进行手动签名也是不成功的,不要像我一样,已经购买了np管理器的付费功能,想要进行手动签名时,回过头才发现是封装平台本身封装的就有问题!!!

这里我就不折腾了,我们直接借助别人的成果吧

可以看到,封装好之后,在移动端就是这样的一个效果,至于它的效果这么好,是因为网站专门针对于移动端做了适配,给手机端专门写了个页面,这种就是web的封装,其实它的本质还是一个web应用,我们抓包,还是抓的那个网站

安全影响:常规Web安全测试

#APP-开发架构-H5&Vue-HBuilderX

https://www.dcloud.io

演示:HBuilderX案例

我们打开以上链接,把下载HBuilderX下来

我们点击左上角的文件,新建,新建项目

选择一个对应的模板,输入它的项目名称,点击创建

我们可以看到,这就是它的一些源码

我们可以运行一下,简单看看效果。

右键,发行,app/android/ios云打包

我们要起一个符合它命名规范的名称,把相应的证书文件导入进去,填写好证书别名、证书库密码、证书私钥密码,然后点击打包

我们把打包好的文件导入到安卓模拟器内,安装运行一下,看看是否和我们刚刚选择模板的时候,结果是否一致

可以看到,结果是一致的,这就是利用H5+VUE框架开发的语言,像这种它会有什么安全问题呢?

大家可以看下它的源码,除了它本身的一些js文件,HTML文件,再就是一些图片文件,剩下的就是啥也没有了,它纯粹是数据的显示,然后数据的传输都是通过调用API接口 我们反编译源码也看不到什么有价值的信息,所以这种,只能通过js前端测试,以及一些API方面、框架的安全问题来做测试,或者利用抓包技术尝试对该app提取一些网站的价值信息

安全影响:API&JS框架安全问题&JS前端测试

#小程序开发架构:

大家所说的小程序指微信小程序,实际上除了微信小程序外,还有支付宝、百度、头条、飞书、QQ、快手、钉钉、淘宝等个各种平台的小程序。在微信小程序开发中,开发者可以根据自身情况和项目需要,选择不同的开发方式,包括:原生开发、WebView开发、框架开发和低代码开发等。

参考:https://mp.weixin.qq.com/s/dXTb0wk57-bLA3tUuvOFSw

#WX小程序-开发架构-Web封装-平台

演示:ShopXO源码程序+多豆云打包

https://shopxo.net

https://www.ofcms.com

这种跟上述我们介绍的大体相同,主要需要注意的一点是要有相应的开发权限,需要向腾讯申请对应AppID以及小程序上传代码密钥,由于我并没有这个东西,所以就不介绍这个了

总而言之,它的效果跟我们用网站封装的效果是一样的,我们主要演示第二种

安全影响:常规Web安全测试

#WX小程序-开发架构-H5&Vue-HBuilderX

演示:HBuilderX案例

https://www.dcloud.io

https://mp.weixin.qq.com/s/SIWBZv_vZ6AGtHrl3hpR9A

我们接着打开HBuilderX,新建一个uni-app项目,选择一个模板

可以看下,这就是它的源码目录结构

我们依旧右键发行-小程序-微信
输入对应的AppID

输入信息,发布完之后,那么我们要怎么样去运行这个小程序呢?

我们可以下载个微信开发者工具,找到你编译好之后对应的路径,点击导入,选择你对应的目录

我们点击不使用云服务,并使用测试号,点击创建,点击信任并运行

我们打开后看看运行效果,如果打开并没有新闻资讯,在微信开发者工具右上角点 「详情」

勾选 「不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书」

勾上后,刷新或重新编译,报错就会消失,页面就能正常加载数据了。

勾选过后,我们刷新一下,点击重新进入小程序

安全影响:API&JS框架安全问题&前端测试

安全影响:反编译小程序-提取小程序源码泄漏的信息

微信小程序、移动app安全通用测试方法:

1、反编译-源码-提取资产(泄漏的配置信息)-安全测试

2、抓包-资产-安全测试

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇