如何进行验证测试(上)

发表于:2010-1-05 11:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:jamesking    来源:51Testing软件测试博客

关键字:验证测试

  所谓认证,就是建立确信某物或某人是真实的这么一个过程,authentication来自于希腊语,即真实的,可信的。认证本身依赖于多个认证因子,在计算机安全领域,认证意味着验证通讯发起者的数字身份,常见的认证过程就是用户登录认证,所谓认证测试就是理解系统中的认证机制并找到方法绕过该认证机制。

  认证测试需要考虑的点有很多,下面我们逐一来进行解释说明:

  ● 在加密通道上传递密码

  原则上,用户的认证必须通过加密信道进行传输,我们在这里的目的不是要验证诸如HTTPS是否安全,我们要验证的仅仅是用户的认证信息是否已经被加密了。

  在用户登录时,最常见的方式是用户输入用户名和密码后,通过POST方法传输,一般来说,认证信息或者是通过不安全的HTTP传递,或者是通过加密的HTTPS传递。我们注意到,甚至有些网站在登录页面显示给我们的是HTTPS,但事实上却仍然是用HTTP的,最简单的方法就是用网络监听工具,如SnifferPro或Ethereal来判断是否是真实加密了。

  下面,我们用OWASP的WebScrab截取一些信息来做个例子

  假设,登录页面要求用户输入用户名和密码,然后有一个“提交”按钮,那么在WebScrab中我们得到如下的请求数据:

POSThttp://www.example.com/AuthenticationServletHTTP/1.1
Host:www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.14) Gecko/20080404
Accept: text/xml,application/xml,application/xhtml+xml
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer:http://www.example.com/index.jsp
Cookie: JSESSIONID=LVrRRQQXgwyWpW7QMnS49vtW1yBdqn98CGlkP4jTvVCGdyPkmn3S!
Content-Type: application/x-www-form-urlencoded
Content-length: 64
 
delegated_service=218&User=test&Pass=test&Submit=SUBMIT

  在上面的数据中,我们可以看到,POST方法通过HTTP协议把数据发送到http://www.example.com/AuthenticationServlet,那么显然在这时,传送的数据没有进行加密,恶意用户通过监听网络就很容易得到用户名和密码。
41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号