【转】安全测试自学路线图

转自:http://www.besttest.cn/article.php?id=168

1. 黑客攻击流程

 

图1 黑客攻击流程

2. web安全测试流程

图2 web安全测试流程

3. 部分基础知识

3.1 http协议、状态码等

  当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。 原理是怎样的呢?

  实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器, 浏览器解析Response中的HTML,这样我们就看到了网页,过程如图3所示:

 

图3

我们的Request有可能是经过了代理服务器,最后才到达Web服务器的。过程如图4所示:

 

图4

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

  Response消息中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。

  状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.

  HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别

  • 1XX 提示信息-表示请求已被成功接收,继续处理
  • 2XX 成功-表示请求已被成功接收,理解,接受
  • 3XX 重定向-要完成请求必须进行更进一步的处理
  • 4XX 客户端错误- 请求有语法错误或请求无法实现
  • 5XX 服务器端错误-  服务器未能实现合法的请求

3.2数据库基础知识

安全测试中常利用数据库的漏洞来进行注入等操作,所以基本的数据库知识是必备的。

3.3一定的代码能力

  安全测试往往夹杂着很多白盒类代码审查工作,需要测试人员拥有一定的代码阅读能力,同时,安全测试核心在“教开发人员编安全的代码”,所以既要会测试,又要了解代码修改方式,这也要求了需要有一定的代码能力。

除此以外可能会综合用到很多软件领域的知识,例如要探测系统中的逻辑漏洞,那么一定要求测试人员拥有一定的需求分析能力和设计能力;很多时候我们需要用到很多工具,包括Burpsuite、webscarab等工具,因此也要求测试人员掌握这些工具的使用和特点,取长补短,共同构建你的测试方案。

4.安全测试原理

这一部分是我们去测试系统安全的核心所在,这里不做详细叙述,需要大家自己去努力学习,不过把besttest安全测试培训大纲中的相关内容展示在下面,供大家参考:

  1. web安全入手第一步:解析应用程序!
  2. 掩耳盗铃--绕过客户端控件的原理及预防
  3. 不能说的秘密--失效的身份验证机制
  4. 请君入瓮--会话管理劫持
  5. 手把手带你SQL注入
  6. XPATH定位?这次带你XPATH注入!
  7. 剥茧抽丝见真相--跨站脚本(XSS)
  8. 卧底的故事:其实我不是XSS--跨站请求伪造(CSRF)
  9. 思维迷宫--逻辑缺陷
  10. 我是灰太狼--社会学攻击

5.相关书籍推荐:

 

posted @ 2013-12-26 09:53  myLittleGarden  阅读(3355)  评论(0编辑  收藏  举报