可用fidder测试的一些安全测试点

以下是整理的一些常见的安全渗透测试点

1.用工具fidder抓包拦截篡改服务器端返回的代码,导致下级拥有对上级的访问操作权限

以下是公司开发写的用户角色权限页面跳转

修改普通角色跳转的页面为管理员跳转的页面

2.篡改传输的数据,积分兑换下订单,可以花别人的积分兑换东西送货到我想送的人和地址

3.任意修改用户资料

某交易平台的用户可以通过该系统的个人资料修改页面修改个人的昵称和头像。

截取发送修改请求的数据包抓取进行分析。我们发现在提交的过程中,其实请求自带了一个隐藏的参数investor.loginName,其实 investor.loginName为登录的手机号码(或用户名),investor.Name为重置的用户名,通过直接修改掉参数 investor.loginName为任意注册的用户名或者手机号码,即可成功篡改重置该用户的用户名。

4.任意查询用户信息

在对金融交易平台测试的过程中,我们发现大部分平台并未对查询功能进行优化,使用用户的uid之类的账号标志参数作为查询的关键字,并且未对查询范 围进行控制,导致出现任意信息查询的安全漏洞。该类型漏洞在手机客户端较为常见,如在某交易平台手机商城就发现了任意查询其他用户信息的安全问题。

当点击商城的个人资料修改处,系统会通过将当前用户的phone_client_uuid提交到服务器进行查询,调出个人资料的内容

但由于系统并未对该功能进行访问控制,导致可通过遍历uuid的方式查询平台中任意用户的资料,通过工具对phone_client_uuid的后5位进行爆破尝试,如下图:

通过对返回值的length进行筛选,发现成功爆破部分phone_client_uuid所对应的用户信息。

代码防护

针对平行权限的访问控制缺失,我们建议使用基于用户或者会话的间接对象引用进行防护,比方说,一个某个选项包含6个授权给当前用户的资源,它可以使 用一串特殊的数字或者字符串来指示哪个是用户选择的值,而不是使用资源的数据库关键字来表示,数字和字符串的生成可以结合账号信息进行生成,使得攻击者难 以猜测生成的方式。

针对垂直权限的访问控制缺失,我们建议可以使用缺省拒绝所有的访问机制,然后对于每个功能的访问,可以明确授予特定角色的访问权限,同时用户在使用该功能时,系统应该对该用户的权限与访问控制机制进行校对。

5.任意重置用户密码

漏洞描述

用户越权去修改其他用户的信息,如密保电话、密保邮箱等,由于它敏感性所以我们将它归纳成一类进行探讨。

案例

绕过短信验证码

基本所有的金融交易平台都有短信找回密码的功能,但部分短信验证的功能较为不完善导致可被利用重置任意用户的账号,同样是某金融平台的实际案例:

在已知对方用户名和手机号码的情况下,通过站点的密码找回功能可绕过短信验证码直接重置该账号密码。下图为密码重置页面:

该漏洞出现主要的原因在于开发人员在第二步设置新密码时服务端没有对手机验证码进行二次校验,提示:重要的功能都需要做服务器端验证,导致当攻击者可以利用修改返回值的方式直接跳转到设置新密码页面,然后重置用户的密码。

6.短信验证码暴力破解

部分金融交易平台为了用户登录方便会设置短信验证码登录功能,但并未对验证码的登录错误次数进行限制,导致可利用验证码爆破的方式强行登录账号。在某证券交易平台就曾出现过该安全问题。

该平台使用6位数字随机验证码进行登录,但并未对登录错误次数和验证码失效时间进行限制,导致可以暴力破解该验证码强制登录账号。如下图:

同样是通过返回值的length字段进行判断是否登录成功。6位字段的爆破需要较长的时间,但4位验证码的爆破时间最慢也仅需要约5分钟左右。

代码防护

针对案例一中的漏洞,我们建议在第二步修改密码时服务端再次验证手机验证码,部分平台所采用的做法是,第一步验证码提交成功后,将验证码隐藏在一个 “hidden”表单中,并在第二步修改密码中进行提交,服务端再次验证短信验证码,保证准确性,同时对验证码的错误次数进行限制,当验证错误超过特定次 数,当前验证码无效。

针对案例二中的漏洞,我们同样建议随机验证码设置错误次数限制,当验证错误超过特定次数,当前验证码即无效。

7.恶意注册

漏洞描述

恶意注册,是指攻击者利用网站注册功能的安全漏洞,注册大量的垃圾账号,导致系统增多大量无用数据。一般网站开发者为了防止恶意注册的行为,在注册 页面均会在加入一些需要人工输入的步骤,比方说短信验证码,邮箱验证等。但是在对金融平台测试的过程中,同样也发现了部分验证功能可被绕过。

案例

注册数据包重放绕过验证码

部分金融交易平台为了保证注册用户的真实性,往往都会要求验证手机,并通过发送验证码的方式来保证注册账号并非僵尸账号,但是部分平台的验证码可被多次重放,导致可注册大量垃圾账号,在某交易商城的注册功能就存在该漏洞,下图为注册时需要给手机发送验证码的数据包:

短息码验证完后,直接注册写数据库,通过修改phoneNum的值可以实现批量注册账号:

通过修改phoneNum的值为15527xxxx96、15527xxxx97可成功注册这两个账号:

该漏洞出现的原因在于后台未校验验证码的使用次数和时间,只校验了其准确性,因此可被利用进行多次注册。

代码防护

目前遇到的大部分恶意注册类的安全漏洞均为验证码可被多次使用造成,我们建议后台对验证码的使用进行限制,任何的验证码应为一次性,防止验证码被多次使用

8.恶意短信

漏洞描述

恶意短信是一种类似于DDoS的攻击方式,他是利用网站的短信相关的功能,对用户的手机进行长时间的短信轰炸,导致手机瘫痪。除了单纯的短信轰炸之外,我们在测试过程中也发现,部分金融交易平台对所发送的短信内容也并没有进行限制,导致可被利用进行短信欺诈。

案例

短信轰炸

在测试的过程中,我们发现众多的金融交易平台仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大 量发送恶意短信。如某交易平台的手机注册处就出现过该类型漏洞。利用fiddler抓取数据包,并进行重放可以绕过前端的限制,大量发送恶意短信。

任意短信内容编辑

在某平台的修改绑定手机功能就曾出现过可编辑短信内容的问题。

点击“获取短信验证码”,并抓取数据包内容,如下图。通过分析数据包,可以发现参数sendData/insrotxt的内容有客户端控制,可以修改为攻击者想要发送的内容

将内容修改“恭喜你获得由xx银行所提供的iphone6一部,请登录http://www.xxx.com领取,验证码为236694”并发送该数据包,手机可收到修改后的短信内容,如下图:

该类型漏洞对系统的影响不大,但若被攻击者利用进行短信欺诈,将严重影响平台的声誉,甚至可能会惹上法律纠纷。

代码防护

针对恶意短信类的安全问题,我们建议可以通过以下两种方式进行防护:

1、从服务端限制每个号码的发送频率和每天的发送次数,防止攻击者利用短信接口进行恶意轰炸。‍‍

‍‍2、发送短信的内容应直接由系统内部进行定义,客户端可通过数字或字符的方式,对所需要发送的内容进行选择,如messagetype=1 为密码找回,messtype=2为注册,然后通过数字来索引要发送的内容。

9.增加抽奖机会

本来没有抽奖的次数,点击立即抽奖,fidder抓包,篡改状态将0改为1,去掉提示

时间: 2024-11-03 05:35:40

可用fidder测试的一些安全测试点的相关文章

alwaysOn+SQL群集+cluster 高可用方案测试

在SQL2012以前,高可用自动切换方案就是SQL群集了,优点就是切换完全自动,缺点也有很多, 然后2012出现了alwaysOn特性,在高可用上有了很大的提升,今天这个测试是将2个特性结合在一起做一个高可用的方案. 这个方案的优点就是数据上,主数据只有一份,而且不受alwaysOn节点数限制,缺点就是切换时间比alwaysOn本身的要长一些. 准备很简单,AD1台 测试足够. 然后先准备2台服务器,做cluster,注意第3台要做alwaysOn副本的机器千万不要现在加入cluster, 然后

移动app测试方案及流程&测试点归纳

移动app测试方案及流程 1.首先是测试 资源确认及准备 (1)产品需求文档,产品原型图 ,接口说明文档及设计文档应该齐全 (2)测试设备及测试工具 的准备:IOS和android的不同年版本的真机,以及测试相关工具的准备 2.测试用例的设计及评审 (1)根据产品需求文档,产品原型图等文档,设计客户端的一般功能测试用例 (2)测试用例评审,修改与完善,评审过后着手进入正式测试阶段 3. UI测试 (1)确保手头的原型图与效果图为当前最新版本,符合产品经理及用户需求 (2)测试过程一切以效果图为准

20Lync2013升级到SkypeForBusiness2015进阶篇--SFB后端Mirror高可用切换测试

6.1.3 查看镜像高可用 刚才创建的共享文件夹写入了SQL的备份文件 6.1.4 高可用测试 切换后,客户端是不会受影响的,可以反复切换下后端,测试下载拓扑信息,以及重启前端服务器,看是否正常启动所有的服务

一个关于ceph的可用空间测试

一.环境 节点概述 mon : ceph-node01 ceph-node02 ceph-node03 osd :ceph-node01 ceph-node02 ceph-node03 mds : ceph-node01 ceph-node02 操作系统:Ubuntu 14.10 每个osd主机有一个OSD,每个OSD可用容量15GB. 二.测试过程 1.ceph -s查看概述 [email protected]:~# ceph -s     cluster 9ae8eb40-4f71-49ec

33SkypeForBusiness2015进阶篇--启用后端AllwaysOn高可用并测试

6.3.17 更新SQL存储到LyncBE2015-2并发布拓扑 6.3.18 更新CsDatabase 6.3.19 更新SQL Server存储使用侦听器 6.3.20 测试Allways On可用性 1.重新启动下当前的Allways On主要节点,故障切换到LyncBE2015.contoso.com,切换过程中,用户无影响 2.重新启动下前端的服务或重新启动下前端服务器,查看服务是否能够正常启动,并下载拓扑 3.最后,因为做Mirror的时候没有配置心跳网卡,生产中建议增加一个心跳网络

智能手机(苹果,安卓)判断wlan是否可用的测试域名

Apple设备连上wifi后会自动请求一个URL来判断是否可以正常访问Intelnet,该URL为:http://www.apple.com/library/test/success.html,正常情况下应该返回一个简单页面,内容为"Success",Apple设备根据返回的内容来判断网络是否可用,如检测到没有返回"Success",则认为无法连接到Internet

(5.2)mysql高可用系列——测试环境部署

关键词环境部署: [1]策划[1.1]数据库服务器A组 8台 192.168.1.200~192.168.1.207,主机名db,db1~db7[1.2]负载均衡服务器 2台 192.168.1.211~192.168.1.212,主机名,fz1,fz2[1.3]中间件 192.168.1.221~192.168.1.222,主机名,xm1,xm2 [2]虚拟机,样板机centos7#IP地址 IP地址,192.168.1.200#修改主机名 hostname db1#直接修改本地主机名 vi

Mysql-MHA高可用实验测试

说明: centos 6.5  mysql 5.5.37  mha4mysql-manager-0.55  mha4mysql-node-0.54 manager 192.168.1.1db1 192.168.1.2db2 192.168.1.3db3 192.168.1.4 配置mysql主从db1: server-id = 1read_only = 1relay_log_purge=0binlog_format=mixed db2,db3忽略 db1主 grant replication s

压力测试中存在的问题

压力测试中存在的问题 (What) 什么是压力测试 软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分.软件压力测试的基本思路很简单: 不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试. 通常要进行软件压力测试的资源包括内部内存.CPU 可用性.磁盘空间和网络带宽. 压力测试涵盖,性能测试,负载测试,并发测试等等,这些测试点常常交织耦合在一起. 压力测试存在那些问题 我归纳一下又几点: 操作系统默认安装,在未做任何优化的情况下实施压力测试