服务器安全检测和防御之web攻击

Web 攻击是指攻击者利用 Web 应用程序的漏洞、配置缺陷或逻辑错误,对 Web 服务器、应用程序或用户进行的恶意攻击行为,目的包括窃取数据、篡改内容、瘫痪服务甚至完全控制目标系统。以下是常见的 Web 攻击类型及其原理、危害和典型场景:

一、注入攻击(Injection Attacks)

注入攻击是最常见且危害极大的 Web 攻击类型,核心是攻击者将恶意代码注入到 Web 应用的输入参数中,被服务器误执行。

  1. SQL 注入(SQL Injection)

    • 原理:Web 应用在拼接 SQL 语句时未对用户输入进行过滤,攻击者通过输入包含 SQL 命令的字符串,篡改原始查询逻辑。
    • 危害:窃取数据库数据(如用户账号密码、支付信息)、删除或篡改数据、甚至通过数据库提权控制服务器。
    • 示例
      正常查询:SELECT * FROM users WHERE username = '用户输入'
      恶意输入:' OR '1'='1,拼接后变成 SELECT * FROM users WHERE username = '' OR '1'='1',导致查询返回所有用户数据。
  2. NoSQL 注入

    • 针对 MongoDB 等 NoSQL 数据库的注入攻击,攻击者通过构造特殊查询语句(如 JSON 格式)绕过验证或读取敏感数据。
  3. 命令注入(Command Injection)

    • 若 Web 应用调用系统命令(如pingexec)时直接拼接用户输入,攻击者可注入分号、管道符等符号,执行额外恶意命令(如rm -rf /删除文件)。

二、跨站脚本攻击(XSS,Cross-Site Scripting)

  • 原理:攻击者将恶意 JavaScript 代码注入到 Web 页面中,当其他用户访问该页面时,代码在用户浏览器中执行,窃取 Cookie、会话令牌或诱导用户操作。
  • 分类
    • 存储型 XSS:恶意代码被存储在服务器(如数据库、评论区),所有访问该页面的用户都会触发攻击(如论坛评论注入脚本)。
    • 反射型 XSS:恶意代码通过 URL 参数等方式传递,服务器 “反射” 回页面并执行(如钓鱼链接中包含脚本)。
    • DOM 型 XSS:代码不经过服务器,直接通过客户端 DOM 解析执行(如修改页面元素的innerHTML属性)。
  • 危害:窃取用户登录凭证、模拟用户操作(如转账)、传播恶意链接。

三、跨站请求伪造(CSRF,Cross-Site Request Forgery)

  • 原理:攻击者诱导已登录目标网站的用户,在不知情的情况下点击恶意链接或访问恶意页面,触发一个非预期的请求(如转账、修改密码),利用用户的登录状态执行操作。
  • 特点:攻击依赖用户的 “已认证会话”,且请求看起来是用户 “自愿” 发起的(符合网站正常请求格式)。
  • 示例:攻击者构造一个银行转账的表单链接,诱导已登录网银的用户点击,表单自动提交转账请求,银行服务器因用户会话有效而执行操作。

四、文件上传漏洞攻击

  • 原理:Web 应用允许用户上传文件(如头像、文档)时,若未严格验证文件类型、内容或路径,攻击者可上传恶意脚本文件(如.php.asp后门),通过访问该文件控制服务器。
  • 绕过方式
    • 修改文件后缀(如.php5.phtml绕过简单后缀检查);
    • 伪装 MIME 类型(如将Content-Type改为image/jpeg);
    • 利用文件解析漏洞(如 IIS 的xxx.asp;.jpg解析为 ASP 文件)。

五、敏感信息泄露

  • 原理:因 Web 应用的不当配置或代码缺陷,导致敏感数据被攻击者获取。
  • 常见场景
    • 错误页面泄露服务器版本、数据库类型(如500 Internal Server Error显示 PHP 版本);
    • 日志文件、备份文件(如backup.sql)未删除,直接暴露在 Web 目录;
    • 传输数据未加密(如 HTTP 明文传输密码);
    • 前端代码硬编码 API 密钥、数据库密码。

六、服务器配置缺陷攻击

  • 原理:利用 Web 服务器或应用的默认配置、冗余配置或错误配置进行攻击。
  • 示例
    • 服务器开启目录浏览功能,导致攻击者可直接列出文件(如/uploads/下的所有文件);
    • 使用默认账号密码(如admin/admin)未修改,被暴力破解;
    • 安全头缺失(如未配置X-Content-Type-Options导致 MIME 类型嗅探漏洞)。

七、业务逻辑漏洞攻击

  • 原理:攻击者利用 Web 应用的业务流程设计缺陷(非代码漏洞),绕过正常逻辑实现恶意目的。
  • 常见场景
    • 越权访问(如修改 URL 中的用户 ID 查看他人订单,/order?user_id=123改为user_id=456);
    • 支付金额篡改(如前端修改订单金额后提交,服务器未二次校验);
    • 验证码绕过(如验证码有效期过长、可重复使用)。

八、DDoS 攻击(Web 层)

  • 原理:针对 Web 应用的分布式拒绝服务攻击,通过大量虚假请求耗尽服务器资源(如 CPU、内存、带宽),导致正常用户无法访问。
  • Web 层常见类型
    • HTTP Flood:发送大量 HTTP 请求(如 GET/POST),模拟正常用户访问;
    • CC 攻击(Challenge Collapsar):针对动态页面(如需要数据库查询的页面),发起高频次请求,消耗服务器计算资源。

Web 攻击的防御思路

  1. 输入验证与输出编码:对用户输入进行严格过滤(如 SQL 注入、XSS),输出时对特殊字符编码(如 HTML 实体化)。
  2. 使用安全框架:借助成熟框架(如 Spring Security、Django)的内置防护机制(如参数绑定、CSRF Token)。
  3. 文件上传控制:验证文件类型(结合后缀、MIME、内容校验),限制存储路径(非 Web 可访问目录)。
  4. 会话管理:使用随机、复杂的会话 ID,设置合理过期时间,避免 CSRF(如添加 Token 验证)。
  5. 安全配置:关闭不必要的服务器功能(如目录浏览),更新补丁,部署 WAF(Web 应用防火墙)监测异常请求。

Web 攻击的核心是 “利用信任”—— 攻击者利用 Web 应用对用户输入的信任、对会话的信任或对业务逻辑的信任,因此防御的关键在于 “最小化信任”,对所有外部输入和业务流程保持严格校验。

实验(新一代防火墙ips检测防御抵挡成功)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值