APP与小程序端的WEB渗透测试


APP与小程序端的WEB渗透测试

前言

基于手机通信行业的发达,APP与小程序的使用人数也是越来越多。而传统的WEB端用户量反而又下降的趋势。所以在进行渗透测试的时候,需关注到APP和小程序端的资产,让我们的渗透测试能多点开花。

APP与小程序的渗透测试在本质上和WEB端没有区别,只是使用的载体从浏览器换成了APP和小程序。

这三者同样都是和服务器进行数据交互,所以在对APP和小程序进行渗透测试时的基本流程、漏洞检测与WEB端也是一样的。


工具与环境

工具

  1. 安卓模拟器

    大多数安卓模拟器都可以进行渗透测试(我之前用的夜神模拟器,现在用的mumu模拟器)

  2. Burpsuite

    WEB渗透测试必备

  3. 被动扫描器(非必须)

    习惯用Xray,当然只是在要测试的业务很多的时候使用(省时间),而且要调小线程,以免影响业务正常

环境

abIwTO.png

burp中在Proxy -> Options 中添加一个监听,ip是本机ip,端口随便填

abId0K.png

在模拟器中修改wifi的高级选项,选择手动添加代理,ip与端口要和刚刚在burp中添加的一致

接着要安装证书,在浏览器中访问192.168.1.101:8888,下载证书。将后缀改成.cer

进入设置->安全->从sd卡安装

abINOx.png

找到刚刚下载的证书,点击即可安装

abIam6.png

在模拟器中的浏览器访问下百度,发现成功抓到包,说明环境配置成功了


APP/小程序端常见漏洞

XSS漏洞

在前言里我们讲过,APP/小程序和普通的web端没有很大区别。展示给用户看用的前端语言同样是html(h5)+css(css3)+js,所以同样存在XSS漏洞。

漏洞一般存在的业务功能评论、修改个人信息、留言、发帖、回帖等能插入数据的功能点(这里只讨论存储型XSS)

某小程序测试(授权)存储XSS

abLR2D.jpg

abXZp8.png

由于有时候有waf,所以一般要先尝试绕一绕,实在因为时间原因可以直接fuzz,贴上个我常用的fuzz字典:XSSpayload

短信/邮箱爆破

在登录界面的手机号验证功能一般会有这种漏洞,抓包重放即可达到无限制爆破

某小程序(授权)越权测试

dp5EWt.jpg

用网上的接码平台测试

dp5eQf.jpg

信息泄露

在做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端口,开启被动扫描模式

dpfJSK.png

接着Burp的前提配置(工具与环境中的配置)不变的情况下,在burp中的User options -> Connections -> Upstream Proxy Servers中添加监听端口7777

dphLgf.png

接着Burp抓到的包就能送到Xray进行被动扫描了

该方法适合于要测试的资产较多和复测阶段使用

注意调小xray的线程,以免影响到业务正常


文章作者: Doublenine
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Doublenine !
 上一篇
内网渗透学习(一) 内网渗透学习(一)
内网渗透学习(一)内网内网也指局域网,是指在某一区域内由多台计算机互连而成的计算机组。 工作组为了不让网络混乱,将不同的计算机按功能分别列入不同工作组。工作组就像一个可以自由进出的社团,方便同组的计算机互相访问。工作组没有集中管理作用,工作
下一篇 
BUUCTF刷题记录(一) BUUCTF刷题记录(一)
BUUCTF刷题记录(一)WEB[SUCTF 2019]Pythonginx这题主要是利用了CVE-2019-9636:urlsplit不处理NFKC标准化 题目源码: from flask import Flask, Blueprint
  目录