APP业务挖洞的碎碎念

  • A+

0x00 前言

这是一篇可能和你平时看到的关于APP渗透相关的文章不一样的一篇文章,也是我开始进入金融行业并从事金融行业渗透测试的一些总结,在日常的测试工作中,我接触到最多的就是对APP的渗透测试,相反对WEB进行渗透测试的相反较少,毕竟是金融行业,基本的WEB漏洞已经被修复的差不多,大部分时间都在和APP或者小程序打交道。本文主要是我对APP渗透的一些个人理解和技巧,主要是对APP内功能点的测试上。

0x01 环境配置

工具:Burp+Fiddler+各种手机模拟器+小米4手机

注:如果APP安装包,无法在模拟器上使用,请在低版本的安卓手机上安装,这里推荐的小米4,比较便宜,也可以直接买二手的当测试机

这里说一下我们为什么要使用Fiddler呢?

因为我做的大部分都是银行的APP,很多时候会遇到在手机端开启代理后,打开APP会提示网络错误,这个时候,我通常是使用Fiddler 来进行代理,然后Fiddler 配置把抓到的数据包,发送给burp。

关于Fidder如何抓取HTTPS数据包,如下:

这里我是直接下载的汉化版,本人英语不太好,打开Fiddler,选择工具,然后点击选项,然后在HTTPS处,勾选上捕获HTTPS链接,解密HTTPS流量,忽略服务器证书错误

1.png

选择最右侧的操作按钮,选择将根证书导出到桌面。

2.png

然后将证书导入到浏览器。

3.png

手机端的话,无线网络直接设置上Fiddler的代理地址和端口,这里我设置的9999端口,然后访问x.x.x.x:9999端口,下载证书 安装即可。

4.png

至此 Fiddler可以正常抓取http和https数据包。

关于Fiddler联动burp 抓包,配置如下图:

5.png

0x02 漏洞挖掘技巧

因为我接触的大部分都是银行的APP,所以在挖掘漏洞的过程中,遇到的逻辑漏洞比较多,这个地方 我就用一些案例来讲解,列出的基本都是一些逻辑漏洞

  1. 短信轰炸漏洞

短信轰炸漏洞一般就是在获取验证码的任何地方,比如:账户注册处,密码找回处,验证流程处,申请贷款处,充值话费处等等。

此处的实例就是在注册处,

6.png

7.7.png

81.png

2.越权漏洞(平行越权、垂直越权)

越权漏洞一般存在于,用户的增删改查处,比如:增加/删除用户,查询用户信息处,修改信息或者二维码处,信息修改处。仔细观察数据包中的每个字段,好比id、uuid、userid等等。然后使用两个不同的账户进行测试。

此处的实例是在审批处,通过修改字段,越权给他人审批

91.png

101.png

3.信息泄漏漏洞

信息泄漏漏洞一般出现在获取信息的地方,我们通过返回包判断是否获得了其他用户的信息。

此处的实例是在充值处,获取了其他用户的信息

111.png

4.任意密码重置漏洞

任意密码重置漏洞基本都是在密码找回处,一般情况下当我们点击找回密码的时候,都是通过验证码手机号或者验证邮箱,这就又变成了验证码的问题。一般情况情况下,我们把它分为以下几种情况:

  • 验证码不失效
  • 验证码直接返回
  • 验证码未绑定用户
  • 修改接收的手机号或者邮箱
  • 修改返回包中的状态
  • 跳过验证码步骤
  • 未效验用户字段的值
  • 修改密码处的id、uid等等字段可以替换
  • cookie值替换

此处的实例是在找回密码处,通过修改用户字段值,从而修改其他用户密码

12.png

修改后,登陆测试,登陆成功

131.png

5.验证流程绕过漏洞

验证码流程绕过这个漏洞,我要把它单独拿出来写是因为在金融行业,验证流程绕过漏洞是被定义在中到高危之间,而且我在工作中,也确实遇到了不少验证码流程绕过。这个漏洞主要在 申请下一步的时候

此处的实例是在申请贷款处

输入正确的验证码才会通过此步骤,修改返回包中的状态码可以绕过此验证

14.png

通过修改图中标红字段,绕过此验证码步骤

15.png

161.png

6.CORS跨域资源访问漏洞

CORS跨域资源访问漏洞,是由于配置不当,Origin源未严格,从而造成跨域问题,我们只需要关注数据包中是否有

origin字段,然后修改请求包中的值,然后去看返回包查看Access-Control-Allow-Origin是否改变。

如图

17.png

7.还有一些比较硬核的漏洞,比如不安全的HTTP方法

这个漏洞没有啥难度,只需要把POST请求方式改成OPTIONS方法,然后查看返回包即可

如图

18.png

0x03 小结

这篇文章主要是针对APP内部业务的漏洞挖掘,文章不涉及任何逆向问题,也适合小白观看。APP内部业务漏洞挖掘,主要是挖掘逻辑漏洞,最常见的就是上面提到的几种漏洞,关键是要细心,耐心,通读数据包中的每个字段,对于越权的尝试,要事先准备好两个测试账号,或者是让客户那边提供给你两个账号。