我依然记得自己第一次发现xss漏洞时候的兴奋:
我也记得自己第一次发现sql输入时候的快乐:
直到最近我终于收获了人生的第一个远程代码执行漏洞的利用(RCE:remote code execute),虽然这个漏洞的危害远超过了前两个,但是快乐不如前两个,但是也够我快乐一阵了。现在的我怎么这么快乐啊!!!耳机中播放着风姿花传,太舒服啦。这种快乐谁能懂呢?
CVE-2023-33246 Apache RocketMQ 细节感兴趣的可以找我聊,这里我就不展开了。
再加上我特别容易发现的越权漏洞,owasp top 10我马上就要收集全了。所以再复习一遍owsap top 10 现在对我来说,只有服务端请求伪造(SSRF)这个不太清楚啦
owasp top 10是什么?
OWASP,全称是:Open Web Application Security Project,翻译为中文就是:开放式Web应用程序安全项目,是一个非营利组织。
owasp top 10概述了Web应用程序安全性的10个最关键的安全问题,但并非一成不变,随着时间推移和技术的变化,此榜单也一直在更新,目前最新的版本是2021年的版本。
1、 权限控制失效
失效的访问控制,也就是权限的分配存在不安全性,俗称越权。简单让人理解的一种攻击手段就是攻击者通过技术将自己用户的权限升级成了管理员的权限,自己的账号就是管理员账号。
例如:仅通过页面进行权限控制,接口并未进行权限校验。
2、 加密失败
数据不加密以明文的形式进行传输,很容易发生敏感数据泄露。密码、信用卡号、健康记录、个人信息和商业秘密等数据都需要强加密手段来确保数据的安全性。
3、 注入攻击
应用程序不会验证、过滤或清理用户提供的数据,就有可能发生注入攻击。由于没有验证,黑客将恶意数据注入到程序中,就会被执行。通常注入攻击有两种形式,sql注入和shell注入。
SQL注入:就是通过把SQL命令通过Web应用作为媒介注入到数据库中,最终达到欺骗服务器执行恶意的SQL命令。
shell注入:通过Web程序执行Shell命令,这种Shell命令是OS(操作系统)命令,比如ipconfig,ping, nc等。
4、 不安全设计
主要是程序设计和架构中的安全威胁,强调在程序设计中,避免无效的程序设置。
5、 安全配置错误
安全配置错误是比较常见的漏洞,由于管理员配置不当,比如默认账号密码,导致攻击者可以利用获取到更高的权限,安全配置错误可以发生在各个层面,包含Web服务器、应用服务器、数据库、架构和代码。
例如,配置使用弱密码,在公网暴露敏感端口,没有配置认证机制等。
6、 使用易受攻击和过时的组件
通俗来讲,就是使用组件过时了,却没有更新。由于组件过时没有被维护,会被发现越来越多的漏洞,而且不会被修复。
例如,2021年的Log4j2的JNDI注入漏洞(CVE-2021-44228)可以称之为“核弹”级别的漏洞,如果使用了包含此模块却未修复的组件,会导致风险急剧上升。
7、 认证和授权失败
无法确认用户的身份,导致暴力破解。确认用户的身份、身份验证和会话管理对于防止与身份验证相关的攻击至关重要。比如用户会话或身份验证令牌在注销或不活动期间未正确失效,不仅会导致服务端资源的浪费,还会被黑客利用。
8、 软件和数据完整性故障
程序或者基础架构未能保护软件及资料使之完整性受到破坏。
9、 安全日志记录和监控失败
它指的是在没有日志记录和监控,或者记录不足,将无法检测到漏洞和攻击,此类故障会直接影响可见性、事件报警和取证。这种滑稽的威胁就是被黑客攻击,却监测不到。
10、 服务端请求伪造(SSRF)
SSRF服务器端请求伪造是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是网站的内部系统,由服务器端发起攻击。