Web 攻击是指攻击者利用 Web 应用程序的漏洞、配置缺陷或逻辑错误,对 Web 服务器、应用程序或用户进行的恶意攻击行为,目的包括窃取数据、篡改内容、瘫痪服务甚至完全控制目标系统。以下是常见的 Web 攻击类型及其原理、危害和典型场景:
一、注入攻击(Injection Attacks)
注入攻击是最常见且危害极大的 Web 攻击类型,核心是攻击者将恶意代码注入到 Web 应用的输入参数中,被服务器误执行。
-
SQL 注入(SQL Injection)
- 原理:Web 应用在拼接 SQL 语句时未对用户输入进行过滤,攻击者通过输入包含 SQL 命令的字符串,篡改原始查询逻辑。
- 危害:窃取数据库数据(如用户账号密码、支付信息)、删除或篡改数据、甚至通过数据库提权控制服务器。
- 示例:
正常查询:SELECT * FROM users WHERE username = '用户输入'
恶意输入:' OR '1'='1,拼接后变成SELECT * FROM users WHERE username = '' OR '1'='1',导致查询返回所有用户数据。
-
NoSQL 注入
- 针对 MongoDB 等 NoSQL 数据库的注入攻击,攻击者通过构造特殊查询语句(如 JSON 格式)绕过验证或读取敏感数据。
-
命令注入(Command Injection)
- 若 Web 应用调用系统命令(如
ping、exec)时直接拼接用户输入,攻击者可注入分号、管道符等符号,执行额外恶意命令(如rm -rf /删除文件)。
- 若 Web 应用调用系统命令(如
二、跨站脚本攻击(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); - 支付金额篡改(如前端修改订单金额后提交,服务器未二次校验);
- 验证码绕过(如验证码有效期过长、可重复使用)。
- 越权访问(如修改 URL 中的用户 ID 查看他人订单,
八、DDoS 攻击(Web 层)
- 原理:针对 Web 应用的分布式拒绝服务攻击,通过大量虚假请求耗尽服务器资源(如 CPU、内存、带宽),导致正常用户无法访问。
- Web 层常见类型:
- HTTP Flood:发送大量 HTTP 请求(如 GET/POST),模拟正常用户访问;
- CC 攻击(Challenge Collapsar):针对动态页面(如需要数据库查询的页面),发起高频次请求,消耗服务器计算资源。
Web 攻击的防御思路
- 输入验证与输出编码:对用户输入进行严格过滤(如 SQL 注入、XSS),输出时对特殊字符编码(如 HTML 实体化)。
- 使用安全框架:借助成熟框架(如 Spring Security、Django)的内置防护机制(如参数绑定、CSRF Token)。
- 文件上传控制:验证文件类型(结合后缀、MIME、内容校验),限制存储路径(非 Web 可访问目录)。
- 会话管理:使用随机、复杂的会话 ID,设置合理过期时间,避免 CSRF(如添加 Token 验证)。
- 安全配置:关闭不必要的服务器功能(如目录浏览),更新补丁,部署 WAF(Web 应用防火墙)监测异常请求。
Web 攻击的核心是 “利用信任”—— 攻击者利用 Web 应用对用户输入的信任、对会话的信任或对业务逻辑的信任,因此防御的关键在于 “最小化信任”,对所有外部输入和业务流程保持严格校验。
实验(新一代防火墙ips检测防御抵挡成功)

2967

被折叠的 条评论
为什么被折叠?



