本文章共分为两节,第一部分为弱网环境配置,第二部分为案例演示。
3.1.2 Charles + Android弱网测试原理
安全测试本身也属于业务测试过程中一个环节,业务测试中往往可能会遗漏某个功能点的测试,就会造成严重的安全隐患产生,本文不讲解常见的业务逻辑漏洞挖掘思路,只讲一个渗透测试中很容易忽略的测试手法,他就是弱网测试,正常个人PC网络环境下,一般网络传输速率波动情况比较少。
移动端设备(手机)随身携带,出入场景较为复杂,例如:地铁里,公交车,甚至是电梯,车库等场景本身环境不太好,网络传输更容易丢包,正在使用的APP网络更容易出现异常,所以本篇文章主要讲解APP弱网环境下的安全测试。
APP弱网测试
1. 为什么要进行弱网测试
如上述前言所示,当前APP网络环境比较复杂,网络制式有2G、3G、4G、5G等还有许多公共的wifi。不同的网络环境和网络制式的差异,APP未对不同网络环境下的网络波动产生的异常情况做正确处理,从而导致与原有业务流程处理不一,导致业务逻辑漏洞产生。
2. 常见弱网测试应用场景与测试要点
场景1:互联网金融类APP,申购流程中创建订单后是否支付成功(涉及到扣费)
测试点:弱网环境下,创建订单失败,用户需关注是否被扣费;创建订单成功后支付失败,再次支付是否重复扣费等。
场景2:各类商城购物或游戏APP,优惠卷领取(涉及并发安全问题)
测试点:弱网环境下,单账号只能领取一次优惠券,短时间高并发,低网络传输速率,查看是否可以重复领取多张优惠卷。
弱网测试要点
3. 弱网测试配置
3.1Windows + Android
3.1.1测试工具简述
Charles是一个功能强大的网络代理工具,可以用于HTTP/HTTPS请求、调试、记录和重放等,它还提供了弱网测试的功能。在进行弱网测试时,可以通过合理设置参数来模拟弱网环境,从而测试应用在不良网络情况下的稳定性和易用性。
安装APP并运行,测试对应功能点,发现其安全问题。
3.1.2 Charles + Android弱网测试原理
使用Charles模拟弱网环境,使用中间人攻击方式,捕获Android移动设备上的APP传输流量,高并发发送请求,检查服务端对客户端发起的请求处理情况是否有异常。
3.1.3 Charles弱网环境设置详解
1、开启弱网
(1)点击Proxy->Start Throttling
(2)在charles主界面,点击弱网按钮(乌龟图标),直接开启弱网,开启后是绿色,未开启是灰色
2、设置网络参数
(1)点击Proxy——Throttle Settings——勾选Enable Throttling——再勾选Only for selected hosts——点击Add,设置指定的域名——OK;(针对指定的域名模拟弱网)
|
|
|
|
|
截流预制。Charles官方提供可选择的网络类型。
|
|
|
|
|
|
|
|
|
请求往返延时。客户端向服务端发送请求到服务端返回响应给客户端的总时间。单位是毫秒。
|
|
|
最大传输单元。如果一个数据包超过设置的最大传输单元,则需要分割为多个。
|
|
|
|
|
|
|
|
Unstable quality range (%)
|
不稳定的质量范围,百分比,此项针对Stability中的设置内容进行设定。
|
3、Charles配置指定域名限速
在弹出的throttle settings(节流阀控制)面板上,选择enable throttling(授权节流)
勾选Enable Throttling处文本框,注意:只选择enable throttling而不添加其他域名,为全局节流(也就是对所有的http和https请求都生效)
先选择enable throttling(启用限制),enable的同义词是allow
第一步:在选择了only for selected hosts(只对选择的主机)后,里面配置了域名,才能对配置的域名生效。
3.1.4 Charles抓取手机流量设置
1、charles设置代理端口
Proxy -> Proxy Settings,设置一下端口号,默认的是8888,这个只要不和其他程序的冲突即可,并且勾选Enable transparent HTTP proxying
2、设置捕获HTTPS端口
Proxy -> SSL Proxying Settings... 勾选Enable SSL Proxying,点击Add,点击Add,Host设置要抓取的https接口, 保险起见都填写 * 即可。
3、电脑上安装Charles证书
4、手机上设置代理
点击 Help -> Local IP Address 查看网卡IP
记得用网卡的IP,不要选成VMware虚拟机网卡的IP
然后手机连接wifi(必须跟电脑处在同一个局域网下,也就是电脑和手机连接的wifi为同一个)
点击代理,将代理设为手动,代理服务器主机名填写电脑的IP,端口号填写为主机抓包工具的监听端口。
手机设置完代理IP后保存,然后Charles会弹出个安全提示,点击Deny同意即可。
5、手机安装Charles证书
然后在手机浏览器上访问:http://chls.pro/ssl 下载并安装Charles的证书到手机上安装即可。
手机和Charles都配置好后,就可以使用弱网环境测试对应功能点了。
4. 案例演示
拿XXapp来演示弱网测试操作(只演示操作,真实客户案例很敏感,不在此放出来)
安装好app后,抓取其流量信息,获取到要进行弱网测试的域名信息。
记录此请求的地址信息,然后在charles上配置要弱网测试的地址
然后,重新发送验证码,输入正确的验证码去领取专属生日福利。
开启弱网测试后,客户端发起请求向服务器提交数据,网络一直在加载,过了几秒中,报异常错误。
在此请求发送还没传入到服务端前,可以高并发同时请求服务端
可能此处功能就没对弱网环境下的请求流量信息做处理,就产生安全问题。
2.充值时,按正常充值100,利用漏洞可能多次重复重置。
本文只为抛砖引玉,还有其他的工具也可以进行弱网测试(Fiddler、QNET、Clumsy、Network Link Conditioner、NEWT),可以自行百度去学习相关工具使用。
5. 弱网环境下安全解决方案
弱网环境下造成的业务安全问题,本身是并发控制没做好。做好关键业务点的并发控制,针对不同异常情况做不同的处理措施。
对业务流量进行加密处理,防止流量信息被篡改。
原文始发于微信公众号(Seraph安全实验室):重生第五篇之弱网环境下业务逻辑漏洞挖掘思路
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/2411781.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论