技术开发 频道

如何进行验证测试

  强力测试(暴力测试)

  任何一种技术,在不同的人手里运用所达到的效果是不同的,正如暴力测试,也叫暴力破解,安全服务人员和测试人员利用这种技术来验证是否存在漏洞,而攻击者则利用其来寻找漏洞。

  Web应用系统通常会有一些用户认证方式,这些方式包括证书、指纹、一次性令牌等等,但更多的,往往是用户名和密码的组合,这就使得暴力破解成为可能。

  在对Web应用系统做暴力测试时,首先我们需要了解的是系统的认证机制,通常Web系统会采用以下两种机制:

  ◇ HTTP认证——包含基本存取认证和数字存取认证。

  ◇ 基于HTML表单的认证。

  我们下面对这些认证方式做一下简单介绍:

  基本存取认证

  基本存取认证假设假定用户会以用户名和密码的组合来表明自己的身份,当用户浏览器使用这种机制访问站点时,web服务器将会返回一个包含“WWW-Authenticate”头的401响应,且包含了一个“Basic”值,以及被保护的域名(例如,WWW-Authenticate: Basic realm=”wwwProtectedSite”)客户端会弹出一个需要用户输入该域用户名和密码的提示框。然后,客户端浏览器返回给服务器一个响应,响应包含“Authorization”头,还包含“Basic”值以及连接了用户名,冒号,密码的基于64位的编码(例如,Authorization: Basic b3dhc3A6cGFzc3dvcmQ=),但可惜的是,这个回复只要被攻击者监听到就很容易被解码。

  我们来看一下这个过程:

  1. 客户端发送一个标准的HTTP请求

  GET /members/docs/file.pdf HTTP/1.1

  Host: target

  2. web服务器定位到访问的这个资源是在一个受保护的目录;

  3. 服务器发送一个HTTP 401的认证请求;

  HTTP/1.1 401 Authorization Required

  Date: Sat, 04 Nov 2006 12:52:40 GMT

  WWW-Authenticate: Basic realm="User Realm"

  Content-Length: 401

  Keep-Alive: timeout=15, max=100

  Connection: Keep-Alive

  Content-Type: text/html; charset=iso-8859-1

  4. 浏览器弹出要求输入用户名和密码的数据窗口;

  5. 用户输入用户名和密码后,包含以下数据后再次提交;

  GET /members/docs/file.pdf HTTP/1.1

  Host: target

  Authorization: Basic b3dhc3A6cGFzc3dvcmQ=

  6. 服务器把客户信息和存储的信息进行比较;

  7. 如果身份验证正确,服务器发回被请求的内容,如果失败,服务器将会返回HTTP。

0
相关文章