如下是整理的一些常见的安全渗透测试点前端
1.用工具fidder抓包拦截篡改服务器端返回的代码,致使下级拥有对上级的访问操做权限数据库
如下是公司开发写的用户角色权限页面跳转安全
修改普通角色跳转的页面为管理员跳转的页面服务器
2.篡改传输的数据,积分兑换下订单,能够花别人的积分兑换东西送货到我想送的人和地址并发
3.任意修改用户资料iphone
某交易平台的用户能够经过该系统的我的资料修改页面修改我的的昵称和头像。工具
截取发送修改请求的数据包抓取进行分析。咱们发如今提交的过程当中,其实请求自带了一个隐藏的参数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的值为15527xxxx9六、15527xxxx97可成功注册这两个帐号:
该漏洞出现的缘由在于后台未校验验证码的使用次数和时间,只校验了其准确性,所以可被利用进行屡次注册。
代码防御
目前遇到的大部分恶意注册类的安全漏洞均为验证码可被屡次使用形成,咱们建议后台对验证码的使用进行限制,任何的验证码应为一次性,防止验证码被屡次使用
8.恶意短信
漏洞描述
恶意短信是一种相似于DDoS的攻击方式,他是利用网站的短信相关的功能,对用户的手机进行长时间的短信轰炸,致使手机瘫痪。除了单纯的短信轰炸以外,咱们在测试过程当中也发现,部分金融交易平台对所发送的短信内容也并无进行限制,致使可被利用进行短信欺诈。
案例
短信轰炸
在测试的过程当中,咱们发现众多的金融交易平台仅在前端经过JS校验时间来控制短信发送按钮,但后台并未对发送作任何限制,致使可经过重放包的方式大 量发送恶意短信。如某交易平台的手机注册处就出现过该类型漏洞。利用fiddler抓取数据包,并进行重放能够绕过前端的限制,大量发送恶意短信。
任意短信内容编辑
在某平台的修改绑定手机功能就曾出现过可编辑短信内容的问题。
点击“获取短信验证码”,并抓取数据包内容,以下图。经过分析数据包,能够发现参数sendData/insrotxt的内容有客户端控制,能够修改成攻击者想要发送的内容
将内容修改“恭喜你得到由xx银行所提供的iphone6一部,请登陆http://www.xxx.com领取,验证码为236694”并发送该数据包,手机可收到修改后的短信内容,以下图:
该类型漏洞对系统的影响不大,但若被攻击者利用进行短信欺诈,将严重影响平台的声誉,甚至可能会惹上法律纠纷。
代码防御
针对恶意短信类的安全问题,咱们建议能够经过如下两种方式进行防御:
一、从服务端限制每一个号码的发送频率和天天的发送次数,防止攻击者利用短信接口进行恶意轰炸。
二、发送短信的内容应直接由系统内部进行定义,客户端可经过数字或字符的方式,对所须要发送的内容进行选择,如messagetype=1 为密码找回,messtype=2为注册,而后经过数字来索引要发送的内容。
9.增长抽奖机会
原本没有抽奖的次数,点击当即抽奖,fidder抓包,篡改状态
将0改成1,去掉提示