失效的访问控制
在OWASP Top10中排行第1的漏洞,也叫越权,指的是在未对通过身份验证的用户,实施恰当的访问控制。攻击者可以利用这一漏洞,访问未经授权的功能或数据。它主要包含以下四个问题:
1.文件包含/目录遍历
随着网站业务的需求,程序开发一般希望代码更加灵活,所以将被包含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校验或者校验被绕过就造成了文件包含漏洞。
2.权限绕过(水平越权)
通过某权限的用户去访问了类型相似权限相同的用户资源等,称之为水平越权。
就比如一个数据包提交是查询某用户订单的,通过修改参数后发回给服务器端,如果能正确返回修改后参数的查询结果,那么就存在水平越权了。
3. 权限提升(垂直越权)
通过用户权限去访问到了高一级甚至管理员权限的资源,可以执行对应权限操作称之为垂直越权。
权限提升一般是由于应用程序自身的缺陷引起的,最后导致程序执行的操作拥有比开发人员或系统管理员预期更多的权限。
4. 不安全直接对象的引用
不安全的对象直接引用,指一个已经授权的用户,通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。
有以下两点原因:
①Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。
②服务器上的具体文件名、路径或数据库关键字等内部资源被暴露在URL或网页中,攻击者可以尝试直接访问其他资源。
加密失败
在OWASP Top10中排行第2的漏洞,以前称为敏感数据泄露,这是广泛的症状而不是根本原因。主要是因为采用的加密方式手段不是相对最安全的,这些漏洞通常会导致敏感数据泄露或系统受损。
目前我了解到有以下几点原因会导致出现此漏洞:
①存在数据以明文形式传输,这涉及 HTTP、SMTP 和 FTP 等协议。外部互联网流量是危险的。验证所有内部流量,例如,负载平衡器、Web 服务器或后端系统之间的流量。
②默认情况下或在较旧的代码中使用了任何旧的或弱的加密算法。
③正在使用默认加密密钥、生成或重复使用弱加密密钥,或者缺少适当的密钥管理或轮换。
④未强制执行加密,例如,缺少任何用户代理(浏览器)安全指令或标头。
⑤用户代理(例如,应用程序、邮件客户端)不验证收到的服务器证书是否有效。