重生第五篇之弱网环境下业务逻辑漏洞挖掘思路
重生第五篇之弱网环境下业务逻辑漏洞挖掘思路
零度安全攻防实验室 2024-01-21 11:07
COLD WINTER
点击上方
蓝字关注我们
本文章共分为两节,第一部分为弱网环境配置,第二部分为案例演示。
文章目录
1. 为什么要进行弱网测试
2. 常见弱网测试应用场景与测试要点
3. 弱网测试配置
3.1Windows + Android
3.1.1 测试工具简述
3.1.2 Charles + Android弱网测试原理
3.1.3 Charles弱网环境设置详解
1、 开启弱网
2、 设置网络参数
3、 Charles配置指定域名限速
3.1.4 Charles抓取手机流量设置
1、 charles设置代理端口
2、 设置捕获HTTPS端口
3、 电脑上安装Charles证书
4、 手机上设置代理
5、 手机安装Charles证书
4. 案例演示
5
. 弱网环境下安全解决方案
前言:****
安全测试本身也属于业务测试过程中一个环节,业务测试中往往可能会遗漏某个功能点的测试,就会造成严重的安全隐患产生,本文不讲解常见的业务逻辑漏洞挖掘思路,只讲一个渗透测试中很容易忽略的测试手法,他就是弱网测试,正常个人PC网络环境下,一般网络传输速率波动情况比较少。
移动端设备(手机)随身携带,出入场景较为复杂,例如:地铁里,公交车,甚至是电梯,车库等场景本身环境不太好,网络传输更容易丢包,正在使用的APP网络更容易出现异常,所以本篇文章主要讲解APP弱网环境下的安全测试。
APP弱网测试
1. 为什么要进行弱网测试
如上述前言所示,当前APP网络环境比较复杂,网络制式有2G、3G、4G、5G等还有许多公共的wifi。不同的网络环境和网络制式的差异,APP未对不同网络环境下的网络波动产生的异常情况做正确处理,从而导致与原有业务流程处理不一,导致业务逻辑漏洞产生。
2. 常见弱网测试应用场景与测试要点
场景1:互联网金融类APP,申购流程中创建订单后是否支付成功(涉及到扣费)
测试点:弱网环境下,创建订单失败,用户需关注是否被扣费;创建订单成功后支付失败,再次支付是否重复扣费等。
场景2:各类商城购物或游戏APP,优惠卷领取(涉及并发安全问题)
测试点:弱网环境下,单账号只能领取一次优惠券,短时间高并发,低网络传输速率,查看是否可以重复领取多张优惠卷。
例如以下情况:
运营商APP流量领取:
银行APP打车代金券领取:
弱网测试要点
3. 弱网测试配置
3.1 Windows + Android
Charles + 红米note11t pro
3.1.1 测试工具简述
Charles
:
Charles是一个功能强大的网络代理工具,可以用于HTTP/HTTPS请求、调试、记录和重放等,它还提供了弱网测试的功能。在进行弱网测试时,可以通过合理设置参数来模拟弱网环境,从而测试应用在不良网络情况下的稳定性和易用性。
红米
note11t pro
:
安装APP并运行,测试对应功能点,发现其安全问题。
3.1.2 Charles + Android弱网测试原理
使用Charles模拟弱网环境,使用中间人攻击方式,捕获Android移动设备上的APP传输流量,高并发发送请求,检查服务端对客户端发起的请求处理情况是否有异常。
3.1.3 Charles弱网环境设置详解
PS:工具自行百度下载
1、开启弱网
(1)点击Proxy->Start Throttling
(2)在charles主界面,点击弱网按钮(乌龟图标),直接开启弱网,开启后是绿色,未开启是灰色
2、设置网络参数
(1)点击Proxy——Throttle Settings——勾选Enable Throttling——再勾选Only for selected hosts——点击Add,设置指定的域名——OK;(针对指定的域名模拟弱网)
(2)参数说明
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(3)选可选择网速;如下图
3、Charles配置指定域名限速
1、针对全局域名进行限速
在弹出的throttle settings(节流阀控制)面板上,选择enable throttling(授权节流)
勾选Enable Throttling处文本框,注意:只选择enable throttling而不添加其他域名,为全局节流(也就是对所有的http和https请求都生效)
2、只针对个别的域名进行限速
先选择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为同一个)
连接上WiFi后
长按wifi -> 点击修改网络
或者点击右边小箭头进入wifi设置
点击代理,将代理设为手动,代理服务器主机名填写电脑的IP,端口号填写为主机抓包工具的监听端口。
手机设置完代理IP后保存,然后Charles会弹出个安全提示,点击Deny同意即可。
5、手机安装Charles证书
然后在手机浏览器上访问:http://chls.pro/ssl 下载并安装Charles的证书到手机上安装即可。
手机和Charles都配置好后,就可以使用弱网环境测试对应功能点了。
4. 案例演示
拿XXapp来演示弱网测试操作(只演示操作,真实客户案例很敏感,不在此放出来)
安装好app后,抓取其流量信息,获取到要进行弱网测试的域名信息。
打开charles,找到要测试的功能点处
正常走一边流程,捕获下立即领取福利的请求信息
记录此请求的地址信息,然后在charles上配置要弱网测试的地址
Charles 上配置指定域名地址开启弱网测试
然后,重新发送验证码,输入正确的验证码去领取专属生日福利。
开启弱网测试后,客户端发起请求向服务器提交数据,网络一直在加载,
过了几秒中,报异常错误。
在此请求发送还没传入到服务端前,可以高并发同时请求服务端
使用charles的批量重放功能,多并发测试。
可能此处功能就没对弱网环境下的请求流量信息做处理,就产生安全问题。
例如可能出现的问题:
1.单账户按规定只能领取一个优惠卷,却领取两张。
2.充值时,按正常充值100,利用漏洞可能多次重复重置。
本文只为抛砖引玉,还有其他的工具也可以进行弱网测试(Fiddler、QNET、Clumsy、Network Link Conditioner、NEWT),可以自行百度去学习相关工具使用。
5. 弱网环境下安全解决方案
弱网环境下造成的业务安全问题,本身是并发控制没做好。做好关键业务点的并发控制,针对不同异常情况做不同的处理措施。
对业务流量进行加密处理,防止流量信息被篡改。
大寒快乐!
觉得不错,别忘了给个【赞】和【在看】支持↓↓↓