owasp top10 十大常见漏洞
本文最后更新于 5 个月前
简介
搞渗透,挖漏洞,应该了解这些知识基础,我现在对这些东西的理解还不是很清晰,特此来写这一篇文章,逆向方面的话,可能就会比较晚了,感觉reverse-wiki不知到什么时候才可以开张
OWASP(开放式Web应用程序安全项目)是一个开放的社区,由非营利组织 OWASP基金会支持的项目。对所有致力于改进应用程序安全的人士开放,旨在提高对应用程序安全性的认识。
其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结并更新Web应用程序中最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。
十大漏洞介绍
注入漏洞
注入漏洞是指攻击者通过在应用程序中注入恶意代码,从而获取对应用程序的控制权。常见的注入漏洞包括SQL、OS 命令、ORM、LDAP和表达式语言或者 OGNL 注入。攻击者可以利用这些漏洞来窃取数据、篡改数据、执行任意代码等。注入工具也有很多,这里要介绍下基于 python开发的 SQLmap,SQLmap 支持对 PostgreSql,MySQL,Access,MsSql Server 等数据库的自动化注入。是在检查SQL注入漏洞方面最得力的工具。
失效的身份认证
失效的身份认证是指应用程序在身份认证过程中存在缺陷,攻击者可以通过绕过身份认证机制来访问受保护的资源。常见的失效的身份认证漏洞包括弱密码、默认密码、暴力破解、会话劫持、会话固定、不安全的密码存储等。攻击者可以利用这些漏洞来冒充合法用户,窃取用户凭证,或者获取对受保护资源的未授权访问。
敏感数据泄露
敏感数据泄露是指应用程序在处理敏感数据时存在缺陷,导致敏感数据被泄露。应用维护或者开发人员无意间上传敏感数据,如 github 文件泄露。敏感数据文件的权限设置错误,如网站目录下的数据库备份文件泄露。网络协议、算法本身的弱点,如 telent、ftp、md5 等 常见的敏感数据泄露漏洞包括不安全的存储、不安全的传输、不安全的日志记录等。攻击者可以利用这些漏洞来窃取用户的个人信息、财务信息、商业机密等。在处理敏感数据时,应该使用加密、访问控制、安全传输等技术来保护数据的安全性。
XML外部实体注入(XXE)
XML外部实体注入(XXE)是指攻击者通过在应用程序中注入恶意的XML实体,从而获取对应用程序的控制权。常见的XXE漏洞包括不安全的XML解析器、不安全的XML配置、不安全的XML库等。攻击者可以利用这些漏洞来窃取数据、执行任意代码等。在处理XML数据时,应该使用安全的XML解析器、配置和库,并禁用外部实体解析。
无效的访问控制
无效的访问控制是指应用程序在访问控制过程中存在缺陷,导致未授权用户可以访问受保护的资源。常见的无效的访问控制漏洞包括不正确的权限检查、不正确的角色检查、不正确的访问控制策略等。攻击者可以利用这些漏洞来访问受保护的资源,窃取数据、篡改数据等。在实现访问控制时,应该使用严格的权限检查、角色检查和访问控制策略,并确保只有授权用户才能访问受保护的资源。
绕过路径,如未读取的参数做检查,导致路径绕过读取到敏感文件
权限提升,如未对权限做检查,导致攻击者变更权限
垂直越权,攻击者可以从普通的用户权限提升到管理员的权限访问应用程序
水平越权,攻击者可以从普通用户A的权限提升到普通用户B的权限访问应用程序
安全配置错误
安全配置错误是指应用程序在配置过程中存在缺陷,导致应用程序存在安全风险。常见的安全配置错误漏洞包括不安全的默认配置、不安全的配置文件、不安全的配置参数等。攻击者可以利用这些漏洞来获取对应用程序的控制权,窃取数据、执行任意代码等。在配置应用程序时,应该使用安全的默认配置、配置文件和配置参数,并定期检查和更新配置。
跨站脚本(XSS)
跨站脚本(XSS)是指攻击者通过在应用程序中注入恶意脚本,从而获取对应用程序的控制权。常见的XSS漏洞包括反射型XSS、存储型XSS、DOM型XSS等。攻击者可以利用这些漏洞来窃取用户的个人信息、会话信息、执行恶意代码等。在处理用户输入时,应该使用安全的编码和过滤技术,并确保只有授权用户才能访问受保护的资源。
不安全的反序列化
不安全的反序列化是指应用程序在反序列化过程中存在缺陷,导致恶意数据被反序列化为对象,从而获取对应用程序的控制权。常见的反序列化漏洞包括不安全的反序列化库、不安全的反序列化配置等。攻击者可以利用这些漏洞来执行任意代码、窃取数据等。在反序列化数据时,应该使用安全的反序列化库和配置,并确保只有授权用户才能反序列化数据。
使用含有已知漏洞的组件
使用含有已知漏洞的组件是指应用程序在开发过程中使用了含有已知漏洞的组件,导致应用程序存在安全风险。常见的使用含有已知漏洞的组件漏洞包括使用含有已知漏洞的库、框架、插件等。攻击者可以利用这些漏洞来获取对应用程序的控制权,窃取数据、执行任意代码等。在开发应用程序时,应该使用安全的组件,并及时更新和修补含有已知漏洞的组件。
不足的日志记录和监控
不足的日志记录和监控是指应用程序在日志记录和监控过程中存在缺陷,导致无法及时发现和响应安全事件。常见的不足的日志记录和监控漏洞包括不完整的日志记录、不充分的日志监控、不及时的日志响应等。攻击者可以利用这些漏洞来隐藏攻击行为、绕过安全机制等。在日志记录和监控过程中,应该使用完整的日志记录、充分的日志监控和及时的日志响应,并确保安全事件能够被及时发现和响应。