Web安全之OWASP TOP10漏洞

OWASP简介

简单点说,OWASP概括了“10项最严重的Web应用程序安全风险列表”,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。OWASP每四年发布一次,现在最新的OWASP是由2021年公布的。

TOP10 2021漏洞列表

  • 失效的访问控制
  • 加密机制失效
  • 注入
  • 不安全设计
  • 安全配置错误
  • 自带缺陷和过时的组件
  • 身份识别和身份认证错误
  • 软件和数据完整性故障
  • 安全日志记录和监控故障
  • 服务端请求伪造

失效的访问控制

失效的访问控制,指的是由于程序开发时因各方面因素导致的缺陷,使这些限制并没有生效,从而产生了失效的访问控制漏洞。

主要分为水平越权(同级账户横向移动)、垂直越权(普通用户获取管理员权限)和上下文越权。

例子,数据包携带Cookie值表示已经登录,如果删除Cookie值(即没登录状态)还能使用登录后才能使用的功能,这样的就是具有失效的访问控制。

与失效的访问控制类似的漏洞还有目录遍历(文件包含、文件读取等)和未授权访问漏洞(常见的Redis未授权访问漏洞)。

失效的访问控制漏洞一般都出现在需要登录的系统,这类系统一般都具有后台管理模块,并且具有权限划分。通过信息收集我们可能收集到一些接口地址信息,如果没有登录账号,就可以尝试直接访问接口,看看能否越权访问;如果有低级别的账号,就可以尝试访问高级别身份的功能,查看是否有垂直越权的漏洞;如果前两个都无法实现,还可以留意一下CSRF攻击,看是否存在跨站请求伪造,存在CSRF漏洞可以借助钓鱼的方式利用,如果还发现XSS漏洞还可以配合使用,从而使目标执行恶意请求。

加密机制失效

需要重点注意密码、银行卡号码、身份证号码和商业秘密等显而易见的敏感数据。

主要检查以下几个方面检查是否存在加密体制失效漏洞:

  • 数据传输过程是否以明文进行传输(HTTP协议)
  • 是否使用了被废弃或者已经被破解的加密算法(DES已经被破解,AES)?是否使用了加密算法的不安全模式(ECB分组密码模式)?
  • 秘钥强度是否足够?秘钥管理方法是否安全?密钥是否嵌入在代码中?(Shiro小于1.2.24的密钥是固定的且被爆出)
  • 是否强制加密?(有的通过一个接口的参数控制加不加密)
  • 是否验证了证书的合法性?
  • 敏感信息是否使用明文存储
  • 是否使用了被弃用的哈希算法(如MD5或SHA1)?是否使用了已弃用的加密填充方法(例如PKCS1)?是否使用了已废弃的安全协议(例如SSL)?

注入

主要有SQL注入、XSS注入、LDAP注入、POC注入等 

SQL注入

XSS

不安全设计

主要的就是一些逻辑漏洞

1、业务逻辑的几大体现:

  • 支付逻辑
  • 密码找回
  • 验证码暴力破解
  • 验证码重复使用
  • 验证码客户端回显
  • 验证码绕过
  • 验证码自动识别

2、支付逻辑漏洞

所有涉及购买、支付等方面的功能处就有可能存在支付漏洞

  • 修改支付价格
  • 修改支付状态
  • 修改购买数量
  • 修改优惠券、积分
  • 修改支付接口
  • 多重替换支付
  • 重复支付
  • 最小额支付
  • 最大额支付
  • 无限制试用

安全配置错误

可能出现的风险点:

  • 应用程序启用或者安装了不必要的安全功能
  • 默认账户名和密码没有修改
  • 应用软件已过期或者未更新新版本
  • 应用程序服务器,应用程序框架等未进行安全配置
  • 错误处理机制泄露大量敏感信息
  • 对于更新的系统,禁用或不安全地配置安全功能

比如有说:

由于XML配置错误(引入外部实体)而导致的XEE注入

XEE漏洞详解(全面)-CSDN博客

再比如说,任意目录穿越漏洞、Tomcat的弱密码漏洞等

自带缺陷和过时的组件

容易出现的场景:

  • 不清楚使用的组件和依赖的组件的版本
  • 使用了不再维护或者已经过时的版本
  • 没有定期扫描漏洞或订阅相关组件的安全情报
  • 在被爆出漏洞的情况或有新版本的情况下,没有及时修复或升级版本
  • 测试人员没有测试更新、升级或补丁
  • 应用程序的安全配置没有配置正确

比如一些常见的框架漏洞和中间件漏洞:

Springboot/Shiro/Fastjson/Tomcat/Apache...

身份识别和认证漏洞

通常有几大方面:

  • 网络钓鱼攻击

指的是通过伪装成指的信赖的组织或企业,欺骗用户泄露其敏感信息。应当注意要求提供登录凭据的未经请求的电子邮件或消息。

  • 撞库攻击

使用一个平台窃取而来的用户名和密码,访问不同网站的多个账户,就会产生撞库。应当尽量不在不同平台上使用相同账号密码。

  • 弱密码

最常见身份验证漏洞之一,必须使用强密码。

  • 不安全的身份验证

过时或不安全的身份验证协议易受攻击。必须使用安全、最新的身份验证方法。

  • 蛮力攻击

尝试所有可能的密码组合,直到找到正确密码。应当设置一定登录失败次数。

  • 会话劫持

拦截并窃取用户的会话标识符。应当实施安全的通信通道(如HTTPS),生成安全的、随机生成的会话令牌。

  • 缺少多因素身份验证(MFA)

缺少MFA是用户忽略的一个重大漏洞。要求启用MFA,如验证码、短信等。

软件和数据完整性故障

  • 未验证完整性的情况下对软件更新、关键数据和CI/CD数据传递通道所做的假设
  • 反序列化漏洞

要做到不接受来自不受信任源的序列化对象。

安全日志记录和监控失败

如果没有日志记录和监控,就无法检测到漏洞。任何时候都会发生日志记录、检测、监控和主动响应不足的情况:

  • 不记录可审计的事件,如失败登录等
  • 警告和错误不生成、不充分或不清楚
  • 不会监控应用程序和API的日志是否存在可疑活动
  • 日志仅存储在本地(很容易攻击者侵入后删除日志然后无法追查)
  • 适当的警报阈值和响应升级流程没有到位或有效
  • 被进行渗透测试或扫描不会触发警报
  • 应用程序无法实时检测、升级或警告主动攻击
  • 日志泄露敏感信息

服务器请求伪造

也就是SSRF漏洞。

SSRF漏洞详解(全面)-CSDN博客

参考链接:

失效的访问控制漏洞复现实战_权限校验失效漏洞-CSDN博客

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值