APP与小程序端的WEB渗透测试
前言
基于手机通信行业的发达,APP与小程序的使用人数也是越来越多。而传统的WEB端用户量反而又下降的趋势。所以在进行渗透测试的时候,需关注到APP和小程序端的资产,让我们的渗透测试能多点开花。
APP与小程序的渗透测试在本质上和WEB端没有区别,只是使用的载体从浏览器换成了APP和小程序。
这三者同样都是和服务器进行数据交互,所以在对APP和小程序进行渗透测试时的基本流程、漏洞检测与WEB端也是一样的。
工具与环境
工具
安卓模拟器
大多数安卓模拟器都可以进行渗透测试(我之前用的夜神模拟器,现在用的mumu模拟器)
Burpsuite
WEB渗透测试必备
被动扫描器(非必须)
习惯用Xray,当然只是在要测试的业务很多的时候使用(省时间),而且要调小线程,以免影响业务正常
环境
burp中在Proxy -> Options 中添加一个监听,ip是本机ip,端口随便填
在模拟器中修改wifi的高级选项,选择手动添加代理,ip与端口要和刚刚在burp中添加的一致
接着要安装证书,在浏览器中访问192.168.1.101:8888,下载证书。将后缀改成.cer
进入设置->安全->从sd卡安装
找到刚刚下载的证书,点击即可安装
在模拟器中的浏览器访问下百度,发现成功抓到包,说明环境配置成功了
APP/小程序端常见漏洞
XSS漏洞
在前言里我们讲过,APP/小程序和普通的web端没有很大区别。展示给用户看用的前端语言同样是html(h5)+css(css3)+js,所以同样存在XSS漏洞。
漏洞一般存在的业务功能:评论、修改个人信息、留言、发帖、回帖等能插入数据的功能点(这里只讨论存储型XSS)
某小程序测试(授权)存储XSS
由于有时候有waf,所以一般要先尝试绕一绕,实在因为时间原因可以直接fuzz,贴上个我常用的fuzz字典:XSSpayload
短信/邮箱爆破
在登录界面的手机号验证功能一般会有这种漏洞,抓包重放即可达到无限制爆破
某小程序(授权)越权测试
用网上的接码平台测试
信息泄露
在做APP和小程序的渗透测试时,我发现很多页面都是以json格式返回数据,再经过前端渲染展示出来。而很多这种json返回包都没做加密,很容易就能查看到其他用户的信息
例子:
{code:'200',result:'查询成功',data:{name:'张三',phone:'13088888888',mail:'test@163.com',address:'广东广州xx路xx号'}}
漏洞一般存在于页面上有其他用户交互的地方,如帖子、评论、运动功能(类似微信运动那样)等。
越权
在和用户交互的页面上,若对返回包没进行加密可查看到用户id,以此可达到越权
例子:某帖子下方评论处返回包查看到用户id
{code:'200',result:'查询成功',data:{userid:'111111',commentid:'098f6bcd4621d373cade4e832627b4f6'}}
拿到其他用户的id后即可越权查看用户信息、越权添加/删除评论等等
SQL注入
一般小程序抓到的请求包和WEB端没区别,和WEB端一样测试SQL注入即可
不过一般小程序和app的接口服务器有WAF
Burp与Xray联动测试
首先Xray监听本地7777端口,开启被动扫描模式
接着Burp的前提配置(工具与环境中的配置)不变的情况下,在burp中的User options -> Connections -> Upstream Proxy Servers中添加监听端口7777
接着Burp抓到的包就能送到Xray进行被动扫描了
该方法适合于要测试的资产较多和复测阶段使用
注意调小xray的线程,以免影响到业务正常