川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

软件测试认证测试防护能力

作者:川石学院 日期:2021-03-15 15:25:38 点击数:

        认证测试主要是验证系统对暴力破解的一种防护能力。对于口令的破解,最常用的方式是暴力 测试,特别是对于由六位纯数字组成的密码,如电信和金融行业。暴力破解主要是通过穷举法,对 密码每一种可能的情况进行一一试验,直到找到正确的密码为止。 测试时主要是测试系统防护暴力破解的能力,并不对系统进行暴力测试,如果需要进行暴力破 解,可以使用一些相关的工具进行测试。认证方面的测试主要包括以下几方面内容:

软件测试认证测试防护能力(图1)

         强口令策略测试。  认证信息出错的提示信息测试。  避开认证登录测试。  验证码测试。  账号锁定阈值测试。  找回密码测试。  修改密码测试。  敏感数据传输测试。

       (1)强口令策略测试。 强口令策略测试主要是测试在注册或修改用户口令时,Web 系统是否要求用户口令必须为强 口令。 测试时进入密码修改页面,或者注册一个新的用户,在密码输入框中输入弱密码(如密码的长 度少于 6 位字符、设置纯数字为密码)。当输入的密码少于 6 位字符时,系统应该弹出相应的提示 信息(如密码长度不能少于 6 位字符);当输入纯数字时,系统也应该弹出相应的提示信息(如当 前设置的密码为弱密码,是否修改)。 一个强口令策略必须满足以下条件:  口令长度的取值范围为 0~32 个字符,口令的最短长度和最长长度均可设置,口令的最 短长度建议默认为 6 个字符。  口令中至少需要包括一个大写字母(A~Z)、一个小写字母(a~z)、一个数字字符(0~ 9),是否必须包含特殊字符可以设置。  口令中允许同一字符连续出现的最大次数可设置,取值范围为 0~9。当设置为 0 时,表 示无限制,建议默认为 3。  口令必须设置有效期,最短有效期的取值范围为 0~9999 分钟,当取值为 0 时,表示无 限制,建议默认值为 5 分钟;最长有效期的取值范围为 0~999 天,当取值为 0 时,表 示口令永久有效,建议默认值为 90 天。  在口令到期前,当用户登录时系统必须进行提示,提前提示的天数可设置,取值范围为 1~ 99 天,建议默认设置为 7 天。  口令到达最长有效期后,用户在进入系统前,系统需要强制更改口令,直至更改成功。 口令历史记录数可设置,取值范围为 0~30,建议默认设置为 3 个。  管理员、操作员、最终用户修改自己的口令时,必须提供旧口令。  初始口令为系统提供的默认口令或者是由管理员设定时,则在用户/操作员使用初始口令 成功登录后,要强制用户、操作员更改初始口令,直至更改成功。  口令不能以明文的形式在界面上显示。  口令不能以明文的形式保存,必须加密保存;口令与用户名关联加密,即加密前的数据 不仅包括口令,还包括用户名。  只有当用户通过认证之后,才可以修改口令。  修改口令的账号只能从服务器端的会话信息中获取,而不能由客户端指定。  实现弱口令词典功能。  

        (2)认证信息出错的提示信息测试。 攻击者在进行暴力破解时,最终通过穷举法,对用户名和密码进行逐个实验,当登录错误时, 目标服务器会产生相应的提示,而这个提示信息很可能存在漏洞,如提示“该用户名不存在”,像 这类提示信息就存在漏洞。 测试时可以测试两种情况,一是使用错误的用户名和任意密码进行登录,查看服务器弹出的提 示信息;二是输入正确的用户名,输入错误的密码,查看服务器弹出的提示信息。对于这类涉及到 安全的错误提示信息,系统在处理时不能给出准确的、具体的提示信息。

        (3)避开认证登录测试。 避开认证登录测试主要是测试服务器是否可能存在被绕过登录的可能性。避开认证登录其实是 SQL 注入的一种使用方式,一般情况下服务验证登录的一般方式是将输入的用户名和口令与数据 库中的记录进行对比,如果输入的用户名和口令与数据库中的某条记录相同,那么登录成功;反之 提示登录失败,代码如下: Set rs = Server.CreateObject("ADODB.Connection") sql = "select * from Manage_User where UserName='" & name & "' And PassWord='"&encrypt(pwd)&"'" Set rs = conn.Execute(sql) 这条 SQL 语句看似没有问题,当用户输入合法的用户名和密码时,如 admin/123456,程序可 以正确地判断登录是否成功。但如果在用户名或密码输入框中输入 admin' or '1'='1,那么执行的 SQL 语句为: sql = "select * from Manage_User where UserName='admin' or '1'='1' And PassWord=' admin' or '1'='1'" 这样不管用户名和密码输入的内容是否正确,都能绕过服务器的验证顺利登录成功,因为 “'1'='1'”这个条件一定为真。 测试时在用户名和密码输入框中都输入 admin' or '1'='1,验证是否能正确地登录 Web 系统,系 统应该能正确地处理这种情况。

        (4)验证码测试。 验证码测试主要是测试在登录时系统是否提供验证码机制,以及验证码机制是否完善,是否存 在漏洞。验证码的测试需要注意以下几个问题: 第一:登录页面是否存在验证码机制,如果不存在,说明系统存在漏洞。 第二:确保验证码与用户名、密码是一次性同时提交给服务器进行验证的,如果分开提交、分 开验证,那么系统存在漏洞。 第三:测试后台服务器是否为检查验证码正确后才进行用户名和密码的检验,如果不是,说明 系统存在漏洞。从性能的角度来说,先检查验证码,如果验证码失败也可以节约服务器的时间,因 为可以省去数据库判断的时间。测试时可以故意输入错误的用户名、密码或验证码,系统返回提示 信息,如果提示“验证码错误”,说明服务器是先判断验证码,再判断用户名和密码。 第四:验证码是否为图片且在一张图片中,如果不是图片或不在一张图片中,说明系统存在 漏洞。 第五:在登录界面单击右键查看 HTML 源代码,如果在 HTML 源代码中可以查看到验证码的 值,说明系统存在漏洞。 第六:生成的验证码是否根据提供的参数生成,如果是,则说明系统存在漏洞。 第七:测试验证码是否为随机生成,并且不能出现前几次可以随机产生,之后不再随机生成的 情况(如前 8 次可以随机产生验证码,但此后再也不随机产生验证码)。 第八:测试产生验证码的图片中背景色是否为无规律的点或线条。如果背景为纯色(如纯红色), 说明系统存在漏洞,一般验证码的背景色是由一种颜色向另一种颜色渐变,如图 12-15 所示。

软件测试认证测试防护能力(图2)

        测试生成的验证码的有效次数只为一次,即只要使用该验证码登录过一次后,该验证码 就失效。测试时可以按如下步骤进行: 步骤 1:进入登录页面,页面中显示当前生成的验证码。 步骤 2:使用工具对 GET 和 POST 请求进行拦截。 步骤 3:输入错误的用户名或密码,输入正确的验证码,提交请求。 步骤 4:将拦截到的 GET 或 POST 请求拷贝到文件中,并修改用户名或密码。 步骤 5:在“开始”菜单中运行 cmd.exe 程序,在命令行中输入命令 telnet <服务器域名或 IP 地址><端口号>,并按 Enter 键。 步骤 6:将修改的 GET 或 POST 请求粘贴到命令行窗口中,并按 Enter 键。 步骤 7:查看页面中是否提示“验证码错误”一类的信息,如果没有相关提示,则说明服务器 存在漏洞。

        (5)账户锁定阈值测试。 如果缺少锁定策略,那么攻击者很可能通过穷举法对系统进行暴力破解。如网站对同一个 IP 地址注册账户的限制,一般网站不允许同一个 IP 地址在 24 小时之内注册超过 3 次。可以通过账户 锁定阈值来设置登录失败多少次后锁定用户账号,设置次数的范围为 1~999,如果设置为 0,表示 该账号永不锁定;如果定义了账户锁定阈值,那么账户锁定时间必须大于或等于复位时间。 测试时可以故意输入错误的用户名或密码,重复多次登录,观察目标系统返回的信息,系统应 该提示“账号已锁定”或“IP 地址已锁定”等类似的信息。

        (6)找回密码测试。 找回密码测试主要是测试当用户忘记密码并通过网站找回密码时,系统是否存在漏洞。如果系 统存在漏洞,攻击者则可能通过找回密码功能来重置用户的密码,导致用户不能正常登录,造成业 务数据被修改。 具体的测试步骤如下: 步骤 1:进入找回密码界面。 步骤 2:在找回密码时,需要对用户的身份进行验证,未对身份验证就发送密码,说明系统存 在漏洞。常用的身份验证的信息如一些原来注册时填写的找回密码的问题(如小学所在地),对于 这类回答式的问题,应该避开类似判断的问题,如喜欢的宠物是否为小狗这类问题,这样会缩小问 题的范围,说明系统存在漏洞。 步骤 3:如果为输入密码的方式,应该查看 HTML 源代码,检查是否存在关于密码的一些 数据。 步骤 4:重置后的密码一般通过用户的备用邮箱或手机短信来通知用户,不能以明文的方式直 接显示在页面上。 (7)修改密码测试。 修改密码测试主要是测试修改密码的功能是否存在缺陷。具体的测试步骤如下: 步骤 1:进入修改密码界面。 步骤 2:查看修改密码时是否要求输入旧密码,如果不需要用户填写旧密码,说明系统存在缺陷。 步骤 3:修改密码时,需要将旧密码通过一个 HTTP 请求提交到服务器,可以通过一些工具 (如 WebScarab 工具)进行栏截来测试,如果不是,则说明系统存在漏洞。 步骤 4:测试是否可以修改其他用户的密码,一般只有管理员或有相关权限的用户可以修改其 他用户的密码。

        (8)敏感数据传输测试。 敏感数据传输测试主要是测试系统处理用户名和密码传输时,是否对用户名和密码进行加密 处理。测试时可以使用工具(如 WebScarab 工具)对客户提交的 GET 和 POST 请求进行拦截,查看 用户登录过程中用户名和密码是否是使用 HTTPS 协议进行传输。 同理,对于找回密码和修改密码功能,用户名和密码也必须使用 HTTPS 协议传输。 HTTPS(Secure HyperText Transfer Protocol,安全超文本传输协议)是一个安全通信通道,基 于 HTTP 开发,是在 HTTP 的基础上加入 SSL 层,其加密的过程主要是通过 SSL 来完成。HTTPS 通信过程如图 12-16 所示。

软件测试认证测试防护能力(图3)


        


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-03-15 15:25:38
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-03-15 15:25:38
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-03-15 15:25:38
  • 建筑工程专业朱同学成功转行为软件测试人!2021-03-15 15:25:38
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-03-15 15:25:38
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-03-15 15:25:38
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-03-15 15:25:38
  • 文科生转行软件测试照样拿下高薪15K!2021-03-15 15:25:38
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-03-15 15:25:38
  • 毕业1年,迷茫的他最终选择转行软件测试2021-03-15 15:25:38