1️⃣ 失效的访问控制(Broken Access Control)
核心问题:用户能访问本应被禁止的资源或操作
攻击案例:
修改URL参数:
https://shop.com/order?user_id=100
→ 改为user_id=101
查看他人订单直接访问管理员页面:
https://site.com/admin
(普通用户未鉴权)
防御方案:
# 代码示例:检查当前用户是否拥有权限 if current_user != requested_user_id: raise PermissionDenied("无权访问!") # 强制权限验证
学习工具:Burp Suite 修改HTTP请求练习越权漏洞
2️⃣ 加密机制失效(Cryptographic Failures)
核心问题:敏感数据未加密或加密方式不安全
攻击案例:
数据库泄露后,密码明文暴露(如"password123"直接可被使用)
HTTP传输信用卡号被中间人窃取
防御方案:
传输层:强制HTTPS(HSTS头部)
存储层:密码使用 bcrypt 哈希(非MD5/SHA1)
学习工具:Wireshark抓包观察HTTP明文数据
3️⃣ 注入攻击(Injection)
核心问题:用户输入被当作代码执行
攻击案例:
SQL注入:输入
' OR 1=1 --
绕过登录验证命令注入:
; rm -rf /
删除服务器文件
防御方案:
// 使用预编译语句(PreparedStatement)防SQL注入 String sql = "SELECT * FROM users WHERE id = ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setInt(1, userInput); // 安全!输入会被当作数据而非代码
学习工具:SQLMap自动化检测注入漏洞
4️⃣ 不安全设计(Insecure Design)
核心问题:架构设计阶段缺乏安全考量
攻击案例:
密码重置流程未验证邮箱所有权 → 攻击者重置任意用户密码
支付系统未防重放攻击 → 重复扣款
防御方案:
设计阶段进行 威胁建模(Threat Modeling)
关键流程添加业务逻辑校验(如短信验证码确认身份)
5️⃣ 安全配置错误(Security Misconfiguration)
核心问题:服务器/组件使用不安全配置
攻击案例:
服务器开启调试模式 → 暴露代码栈轨迹
云存储桶权限配置为公开 → 数十万用户数据泄露
防御方案:
禁用不必要服务(如FTP、旧版SSL)
自动化扫描工具:OWASP ZAP
6️⃣ 有风险的过时组件(Vulnerable and Outdated Components)
核心问题:使用含已知漏洞的第三方库
攻击案例:
Log4j漏洞(CVE-2021-44228):攻击者注入恶意代码远程控制服务器
防御方案:
定期扫描依赖:OWASP Dependency-Check
仅从官方仓库下载组件(如Maven Central、npmjs)
7️⃣ 身份认证失效(Identification and Authentication Failures)
核心问题:用户身份验证机制存在缺陷
攻击案例:
暴力破解弱密码(如
admin/password
)会话令牌未失效 → 用户注销后令牌仍可用
防御方案:
多因素认证(MFA):强制短信/验证器APP二次验证
学习工具:Burp Suite Intruder模块模拟密码爆破
8️⃣ 软件和数据完整性失效(Software and Data Integrity Failures)
核心问题:未验证代码/数据的来源和完整性
攻击案例:
下载被篡改的软件安装包(植入后门)
自动更新机制未签名 → 攻击者推送恶意更新
防御方案:
使用 数字签名(如GPG签名验证)
关键数据存储哈希值:
9️⃣ 安全日志与监控不足(Security Logging and Monitoring Failures)
核心问题:未记录攻击痕迹 → 无法快速响应入侵
攻击案例:
黑客拖库10小时才被发现(日志未记录异常查询)
登录失败1000次无报警 → 导致暴力破解成功
防御方案:
记录关键事件:
搭建 ELK日志系统(Elasticsearch+Logstash+Kibana)
工具推荐:开源SIEM工具 Wazuh
🔟 服务端请求伪造(SSRF)
核心问题:诱骗服务器访问内部资源
攻击案例:
利用天气查询API参数攻击内网:
GET /api?url=http://internal-db/admin # 服务器访问了内部数据库
防御方案:
禁止服务器向内部网络发起请求
校验用户输入的URL: