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流量,忽略服务器证书错误。
选择最右侧的操作按钮,选择将根证书导出到桌面。
然后将证书导入到浏览器。
手机端的话,无线网络直接设置上Fiddler的代理地址和端口,这里我设置的9999端口,然后访问x.x.x.x:9999端口,下载证书 安装即可。
至此 Fiddler可以正常抓取http和https数据包。
关于Fiddler联动burp 抓包,配置如下图:
0x02 漏洞挖掘技巧
因为我接触的大部分都是银行的APP,所以在挖掘漏洞的过程中,遇到的逻辑漏洞比较多,这个地方 我就用一些案例来讲解,列出的基本都是一些逻辑漏洞
- 短信轰炸漏洞
短信轰炸漏洞一般就是在获取验证码的任何地方,比如:账户注册处,密码找回处,验证流程处,申请贷款处,充值话费处等等。
此处的实例就是在注册处,
2.越权漏洞(平行越权、垂直越权)
越权漏洞一般存在于,用户的增删改查处,比如:增加/删除用户,查询用户信息处,修改信息或者二维码处,信息修改处。仔细观察数据包中的每个字段,好比id、uuid、userid等等。然后使用两个不同的账户进行测试。
此处的实例是在审批处,通过修改字段,越权给他人审批
3.信息泄漏漏洞
信息泄漏漏洞一般出现在获取信息的地方,我们通过返回包判断是否获得了其他用户的信息。
此处的实例是在充值处,获取了其他用户的信息
4.任意密码重置漏洞
任意密码重置漏洞基本都是在密码找回处,一般情况下当我们点击找回密码的时候,都是通过验证码手机号或者验证邮箱,这就又变成了验证码的问题。一般情况情况下,我们把它分为以下几种情况:
- 验证码不失效
- 验证码直接返回
- 验证码未绑定用户
- 修改接收的手机号或者邮箱
- 修改返回包中的状态
- 跳过验证码步骤
- 未效验用户字段的值
- 修改密码处的id、uid等等字段可以替换
- cookie值替换
此处的实例是在找回密码处,通过修改用户字段值,从而修改其他用户密码
修改后,登陆测试,登陆成功
5.验证流程绕过漏洞
验证码流程绕过这个漏洞,我要把它单独拿出来写是因为在金融行业,验证流程绕过漏洞是被定义在中到高危之间,而且我在工作中,也确实遇到了不少验证码流程绕过。这个漏洞主要在 申请下一步的时候
此处的实例是在申请贷款处
输入正确的验证码才会通过此步骤,修改返回包中的状态码可以绕过此验证
通过修改图中标红字段,绕过此验证码步骤
6.CORS跨域资源访问漏洞
CORS跨域资源访问漏洞,是由于配置不当,Origin源未严格,从而造成跨域问题,我们只需要关注数据包中是否有
origin字段,然后修改请求包中的值,然后去看返回包查看Access-Control-Allow-Origin是否改变。
如图
7.还有一些比较硬核的漏洞,比如不安全的HTTP方法
这个漏洞没有啥难度,只需要把POST请求方式改成OPTIONS方法,然后查看返回包即可
如图
0x03 小结
这篇文章主要是针对APP内部业务的漏洞挖掘,文章不涉及任何逆向问题,也适合小白观看。APP内部业务漏洞挖掘,主要是挖掘逻辑漏洞,最常见的就是上面提到的几种漏洞,关键是要细心,耐心,通读数据包中的每个字段,对于越权的尝试,要事先准备好两个测试账号,或者是让客户那边提供给你两个账号。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论