2.3.4 设计错误类
系统设计上对安全机制的考虑不足导致的在设计阶段就已经引入的安全漏洞。 实例:
- LM HASH算法脆弱性
这个算法至少存在以下3方面的弱点:
1、口令转换为大写极大地缩小了密钥空间。
2、切分出的两组数据分别是独立加密的,暴力破解时可以完全独立并行。
3、不足7字节的口令加密后得到的结果后半部分都是一样的固定串,由此很容易判定口令长度。
这些算法上的弱点导致攻击者得到口令HASH后可以非常容易地暴力猜测出等价的明文口令。
- Microsoft Windows图形渲染引擎WMF格式代码执行漏洞(MS06-001) (CVE-2005-4560)
如果一个WMF文件的StandardMetaRecord中,Function 被设置为 META_ESCAPE而Parameters[0] 等于SETABORTPROC,PlayMetaFileRecord()就会调用Escape()函数,Escape()调用SetAbortProc()将自己的第四形参设置为一个回调函数,把图像文件中包含的一个数据块象Shellcode那样执行。此漏洞从Windows 3.1一直影响到2003,攻击者只要让用户处理恶意的WMF文件(通过挂马或邮件)在用户系统上执行任意指
令,漏洞实在是太好用影响面太大了,以至有人认为这是一个故意留的后门,其实影响设计的功能是处理打印任务的取消,功能已经被废弃,但废弃的代码并没有移除而导致问题。
– 搜狐邮箱密码找回功能
密码找回功能在要求用户提供找回密码需要的问题答案时,在返回给用户的页面中就已经包含了答案,只要通过查看页面源码就能看到,使这个找回密码功能的安全验证完全形同虚设,攻击者由此可以控制任意邮箱。之所以这么设计,可能就是为了尽可能地少对数据库的查询,而把用户帐号安全根本不放在心上。
– 紫光输入法用户验证绕过漏洞
这是类似于2000年微软输入法漏洞的例子,通过访问输入法设置的某些功能绕过操作系统的用户验证执行某些操作。
2.3.5 配置错误类
系统运维过程中默认不安全的配置状态,大多涉及访问验证的方面。 实例:
– JBoss企业应用平台非授权访问漏洞( CVE-2010-0738 )
对控制台访问接口的访问控制默认配置只禁止了HTTP的两个主要请求方法GET和POST,事实上HTTP还支持其他的访问方法,比如HEAD,虽然无法得到的请求返回的结果,但是提交的命令还是可以正常执行的。