黑客攻防技术宝典Web实战篇(第二版)_读书笔记(第一章~第三章)

//相关章节(第一章~第三章)

第一章 Web应用程序安全与风险

1.2.1 “本站点是安全的”

漏洞测试过程中出现频率(2007年~11年):

  1. 跨站点脚本(XSS)(94%)
  2. 跨站点请求伪造(CSRF)(92%)
  3. 信息泄露(78%):服务器返回的错误信息泄露配置信息等。
  4. 不完善的访问控制措施(71%):未控制好用户访问数据的权限,导致用户跨权限访问数据。
  5. 不完善的身份认证措施(62%):弱口令,暴力破解等。

(SSL不能抵御直接针对某个应用程序的服务器或客户端组件的攻击,也包括上述的漏洞。)

1.2.2 核心安全问题:用户可提交任意输入

核心安全问题:用户可提交任意输入

用户的干预的客户端到服务器之间的所有数据,包括请求参数cookieHTTP信息头等,同时还可以使用其他工具协助攻击。

(SSL无法阻止攻击者向服务器提交的专门设计输入,仅仅表示网络上其他用户无法查看或修改攻击者传送的数据)

1.2.3 关键问题因素

  1. 不成熟的安全意识:对安全的核心概念不了解
  2. 独立开发
  3. 欺骗性的简化
  4. 迅速发展的威胁形势
  5. 资源和时间限制
  6. 技术上强其所难:例仍然使用原来的技术来满足新的要求。
  7. 对功能的需求不断增强

第二章 核心防御机制

2.1 处理用户访问

(设计者希望是正常用户依次使用这三层安全机制,从而去实现对用户的安全用户访问; 由于设计者的设计缺陷,攻击者往往并非采用该顺序完成访问,从而形成漏洞,例如通过会话管理绕过身份验证(cookie劫持等))。

2.1.1 身份验证

处理用户访问的最基本机制,传统身份验证模型大多为要求用户提交用户名与密码,然后应用程序对其核实,确认其合法性,更为安全性的情况下,使用客户端证书,响应令牌等身份验证模型。

2.1.2 会话管理

会话本身是一组保存在服务器上的数据结构,用于追踪用户与应用程序的交互状态。

应用程序将令牌(唯一的字符串)映射到会话中。

令牌生成过程中存在的缺陷是主要的漏洞来源,使攻击者能推测出发布给其他用户的令牌,随后,攻击者再利用令牌中的缺陷接获其他用户的令牌。

2.1.3 访问控制

在确定用户身份确认的基础上,应用程序需要决定是否授权用户执行其所请求的操作或访问相关的数据。根据用户角色的不同,对其角色权限加以不同的限制。由于实现该功能的复杂性,因此该机制存在大量安全漏洞。

 

2.2 处理用户输入

2.2.2 输入处理方法

1. “拒绝已知的不良输入”——黑名单

对已知的非法字符串或模式进行拦截阻止,接受正常数据。

弊端:

(1)此方法是确认用户输入效率最低的方法。恶意输入可通过各类放式进行编码,或者其他不同的表现形式(大小写绕过,多重字符串等)。

(2)攻击技术的不断发展,黑名单无法防御利用现有漏洞的新型方法。

绕过举例:

SELECT被阻止,可尝试SeLeCt;(大小写绕过)

alert('xss')被阻止,可尝试prompt('xss');(非法字符替换)(prompt为js中用户交互的提示框,可达到与alert同等效果)

补充:

你可能感兴趣的:(读书笔记)