网站或软件系统上线前对注册功能的安全测试
摘要:应用程序系统都有一个注册模块。非法用户则通过注册模块来达到难以言喻的目的,通过注册模块与服务器进行交互(用户输入不可信),因此在系统联机之前,必须在注册模块上执行测试。
许多应用程序系统都有一个注册模块。非法用户则通过注册模块来达到难以言喻的目的,通过注册模块与服务器进行交互(用户输入不可信),因此在系统联机之前,必须在注册模块上执行测试。
一.注册模块是否面向公众
根据系统业务需求,分析注册模块;如果是面向公众的,则应将注册模块放置在明显的位置;
重要的是要强调内部注册功能。此时,注册模块应尽可能隐藏。上线之前,需要测试内部注册模块是否隐藏。 红军方面(黑匣子测试):通过目录扫描,查看源代码,爬取js文件以及发现隐藏的用户注册界面(例如未删除的评论),您还可以使用社工的思维方式,例如登录地址www.xxx.com / userLogin,您可以猜测注册地址为www.xxx.com/userRegist; 蓝军视角(白盒测试):直接找到开发人员来注册模块地址,并查看地址是否容易猜测。
下面的屏幕快照是通过查看源代码发现,系统具有已注册的供内部使用的模块,该模块已添加了注释。通过检查js文件,它找到注册的接口地址和一些参数。
二.验证用户真实性。
检查系统是否需要通过手机或电子邮件验证真实性。身份验证方式没有任何限制,有些通过SMS或电子邮件验证码,有些直接将下一个注册地址发送到电子邮件。为什么需要验证真实性? 这可以有效地防止恶意注册并消除僵尸帐户。
发送SMS验证码时,可以拦截响应数据包,以查看服务器是否直接将验证码返回给客户端。如果它直接返回给客户,则可以使用其他人的身份注册并绕过真实性检查。
如果系统具有面部识别功能,则需要测试面部识别。蓝军视角:直接通过工具制作动态图片或小型视频。
检查验证是否在前端完成。如果在前端,尝试更改代表真实测试结果的返回包中的参数值,类似code=-1改为code=0或者1,status=false改为status=true。
如果系统稍后提供真实性验证功能,则用户可以直接进入系统。此时,您需要检查是否存在未授权的漏洞,以防止未授权访问仅在验证身份之后可用的权限。
三.短信或邮箱轰炸
因为有SMS或电子邮件验证码,所以存在SMS或电子邮件轰炸的风险。这不仅影响用户,而且还为企业消耗了短信成本。在测试过程中,使用数据包捕获工具Burpsuite重播验证码以发送请求数据包(防止在前端检查时间间隔和次数),测试验证码是否有时间间隔限制和数量限制。目前,通常使用的时间间隔为60s,次数为5次。
四.是否验证用户名
大多数系统的注册模块都会验证注册帐户,以验证是否使用了用户名。 此时,您可以使用数据包捕获工具拦截注册帐户验证请求数据包。 例如,使用Burpsuite的“Intruder”模块。 字典为常用用户名,对用户名进行遍历,然后对遍历的用户名执行弱密码清除。
如果未验证注册的用户名,则存在二次注册的风险,该风险可用于重置密码,甚至导致整个帐户被覆盖。 因此,从红军的角度进行测试时,红军需要谨慎,蓝军直接需要快速验证现有用户。
如果未过滤用于验证用户是否存在的select语句,则可能存在SQL注入漏洞。
五.SQL和XSS测试
在红军的角度上,在注册模块上测试sql和xss:当用户名的长度不受限制时,用户名(昵称,地址等也必须进行测试)。 过去流行xss时,会将各种xss插入用户名Pauload中以进行盲打; 和SQL注入,可能存在插入注入或二次注入的风险(在注册开始时,插入被过滤,但是登录到帐户后,在查看个人信息时,未过滤参数,从而导致触发SQL注入攻击 更困难); 蓝军的观点要容易得多,直接代码审核就足够了。
注册时,例如,未过滤所使用的insert语句时,原始SQL语句为(将引用地址插入到SQL注入插入中)
insert into member(username,pw,sex,phonenum,email,address) values('wangwu',md5('a'),'a','aa','a','a')
此时可以构造以下SQL注入有效负载来获取数据库用户名
insert into member(username,pw,sex,phonenum,email,address) values('wangwu'or updatexml(1,concat(0x7e,(users())),0) or'',md5('a'),'a','aa','a','a')
注册时,当输入框有长度限制时,您可以尝试按f12修改输入框的长度,或使用拼接技术将xss有效负载拆分为几个输入框,以验证是否存在xss漏洞。
六.注册为管理员吗
遇到过这样的系统,从js文件中找到的接口请求参数只是用户名和密码
尽管您可以成功注册,但是登录时只可以更改密码和查看个人信息。
在测试过程中,考虑是否可以找到权限。 稍后,当我单击个人信息时,该信息为空白,但是响应数据包中出现错误消息,表明该角色不存在
看到role_id这个参数,于是重新注册,注册请求包中,添加参数role_id,并将role_id设置为1(一般管理员角色id=1),重新注册成功,从而获得管理员权限。
七.上传文件
注册某些系统后,将具有文件上传功能,例如头像和营业执照; 目前,您需要对上传功能执行任意文件上传测试。
其他
当注册请求包的请求参数为xml格式时,进行XXE测试。 如果采用json格式,则最好尝试使用fastjson命令执行这种类型的漏洞。
相关热词搜索:网站安全测试 软件安全测试 注册功能 网站系统测试 重庆网络安全
上一篇:从WEB安全的角度介绍hihttps如何通过机器学习自动生成对抗规则的5个过程
下一篇:使用CentOS8和NGINX尝试ModSecurity启动Web应用程序WAF
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了