浅析常见WEB安全漏洞及其防御措施
字数 1462 2025-08-18 11:35:36

Web安全漏洞详解与防御措施

一、背景概述

Web系统是网络攻防中的主要目标,攻击者通常通过Web打点获取边界服务器权限,再实施内网横向渗透。由于Web系统涉及大量用户数据和敏感信息,一旦遭受攻击可能导致数据泄露、服务中断等严重后果。

二、SQL注入漏洞

1. 漏洞简介

SQL注入漏洞是由于应用程序未能充分验证和过滤用户输入,导致攻击者能够注入恶意SQL代码执行未经授权的数据库操作。

根本成因:后台对用户输入参数未进行处理,直接代入SQL语句执行。

常见危害

  • 数据库信息泄露
  • 添加系统账号
  • 读写文件获取Webshell

2. 漏洞分类

2.1 基于获取信息方式分类

有回显的注入

  1. 联合查询注入:利用UNION操作符合并恶意查询与原始查询
    -- 查数据库中的表
    select group_concat(table_name) from information_schema.tables where table_schema=database()
    
    -- 查指定表的字段
    select group_concat(column_name) from information_schema.columns where table_name='students'
    
    -- 查指定字段的值
    select username from students
    
  2. 基于报错的注入:通过触发SQL错误从错误消息收集信息

无回显的注入

  1. 基于时间的盲注:利用延迟函数判断查询是否成功
    1' and if(substr(({payload}),{i},1)='{j}',sleep(5),1)--+
    
  2. 基于布尔的盲注:利用布尔逻辑判断查询结果
    1' and if(substr(({payload}),{i},1)='{j}')--+
    

其他类型注入

  • 堆叠注入:一次注入中执行多个SQL查询
  • 二次注入:恶意输入先存储后触发
  • 宽字节注入:利用多字节字符集绕过过滤

3. 防御策略

  1. 输入参数过滤:白名单机制验证输入
  2. 参数化查询:使用Prepared Statements
  3. 最小权限原则:限制数据库用户权限

三、XSS漏洞

1. 漏洞简介

XSS(跨站脚本)漏洞是由于应用程序未能过滤用户输入,导致恶意脚本注入到Web页面并在用户浏览器执行。

常见危害

  • 窃取Cookie
  • JS恶意挖矿
  • 广告刷流量
  • XSS蠕虫

2. 漏洞分类

  1. 反射型XSS

    • 恶意脚本通过请求注入并被反射回页面
    • 需要诱使用户点击恶意链接
  2. 存储型XSS

    • 恶意脚本存储到服务器数据库
    • 用户访问页面即触发
  3. DOM型XSS

    • 通过修改DOM结构触发
    • 不经过服务端交互

3. 防御策略

  1. 输入过滤:删除危险标签和字符
  2. 输出编码:HTML/JS/CSS编码输出
  3. 内容安全策略(CSP):限制内容来源
  4. HttpOnly和Secure标志:保护Cookie安全

四、文件上传漏洞

1. 漏洞简介

由于未验证上传文件的类型、大小和位置,导致攻击者可上传恶意文件。

常见危害

  • 恶意文件执行(WebShell)
  • 拒绝服务攻击
  • 恶意文件传播
  • 敏感数据泄漏

2. 防御策略

  1. 文件类型白名单:限制允许上传的类型
  2. 文件大小限制:防止资源耗尽
  3. 文件名随机化:防止覆盖攻击
  4. 隔离上传文件:限制执行权限

五、CSRF漏洞

1. 漏洞简介

CSRF(跨站请求伪造)利用已验证的会话执行未授权操作。

与XSS区别

  • XSS窃取凭证,CSRF借用凭证
  • 都在客户端执行但目的不同

2. 防御策略

  1. CSRF令牌:随机令牌验证请求
  2. Referer检查:验证请求来源
  3. 同源策略:限制跨域请求
  4. 图形验证码:敏感操作验证

六、SSRF漏洞

1. 漏洞简介

SSRF(服务端请求伪造)使服务器发起与应用程序有关的请求。

常见利用

  • 读取本地文件(file:///etc/passwd)
  • 内网端口扫描(dict://127.0.0.1:22)

2. 防御策略

  1. 输入验证和白名单:限制允许的URL/IP
  2. 禁用危险协议:如file/dict/gopher
  3. 限制重定向:防止绕过检测
  4. 网络隔离:限制内网访问权限

七、总结

Web安全核心是输入输出问题:

  • 非法输入未经严格处理
  • 随意输出导致安全问题

防御关键:

  1. 所有输入都视为有害
  2. 输出前必须编码过滤
  3. 最小权限原则
  4. 多层防御策略
Web安全漏洞详解与防御措施 一、背景概述 Web系统是网络攻防中的主要目标,攻击者通常通过Web打点获取边界服务器权限,再实施内网横向渗透。由于Web系统涉及大量用户数据和敏感信息,一旦遭受攻击可能导致数据泄露、服务中断等严重后果。 二、SQL注入漏洞 1. 漏洞简介 SQL注入漏洞是由于应用程序未能充分验证和过滤用户输入,导致攻击者能够注入恶意SQL代码执行未经授权的数据库操作。 根本成因 :后台对用户输入参数未进行处理,直接代入SQL语句执行。 常见危害 : 数据库信息泄露 添加系统账号 读写文件获取Webshell 2. 漏洞分类 2.1 基于获取信息方式分类 有回显的注入 : 联合查询注入 :利用UNION操作符合并恶意查询与原始查询 基于报错的注入 :通过触发SQL错误从错误消息收集信息 无回显的注入 : 基于时间的盲注 :利用延迟函数判断查询是否成功 基于布尔的盲注 :利用布尔逻辑判断查询结果 其他类型注入 : 堆叠注入:一次注入中执行多个SQL查询 二次注入:恶意输入先存储后触发 宽字节注入:利用多字节字符集绕过过滤 3. 防御策略 输入参数过滤 :白名单机制验证输入 参数化查询 :使用Prepared Statements 最小权限原则 :限制数据库用户权限 三、XSS漏洞 1. 漏洞简介 XSS(跨站脚本)漏洞是由于应用程序未能过滤用户输入,导致恶意脚本注入到Web页面并在用户浏览器执行。 常见危害 : 窃取Cookie JS恶意挖矿 广告刷流量 XSS蠕虫 2. 漏洞分类 反射型XSS : 恶意脚本通过请求注入并被反射回页面 需要诱使用户点击恶意链接 存储型XSS : 恶意脚本存储到服务器数据库 用户访问页面即触发 DOM型XSS : 通过修改DOM结构触发 不经过服务端交互 3. 防御策略 输入过滤 :删除危险标签和字符 输出编码 :HTML/JS/CSS编码输出 内容安全策略(CSP) :限制内容来源 HttpOnly和Secure标志 :保护Cookie安全 四、文件上传漏洞 1. 漏洞简介 由于未验证上传文件的类型、大小和位置,导致攻击者可上传恶意文件。 常见危害 : 恶意文件执行(WebShell) 拒绝服务攻击 恶意文件传播 敏感数据泄漏 2. 防御策略 文件类型白名单 :限制允许上传的类型 文件大小限制 :防止资源耗尽 文件名随机化 :防止覆盖攻击 隔离上传文件 :限制执行权限 五、CSRF漏洞 1. 漏洞简介 CSRF(跨站请求伪造)利用已验证的会话执行未授权操作。 与XSS区别 : XSS窃取凭证,CSRF借用凭证 都在客户端执行但目的不同 2. 防御策略 CSRF令牌 :随机令牌验证请求 Referer检查 :验证请求来源 同源策略 :限制跨域请求 图形验证码 :敏感操作验证 六、SSRF漏洞 1. 漏洞简介 SSRF(服务端请求伪造)使服务器发起与应用程序有关的请求。 常见利用 : 读取本地文件( file:///etc/passwd ) 内网端口扫描( dict://127.0.0.1:22 ) 2. 防御策略 输入验证和白名单 :限制允许的URL/IP 禁用危险协议 :如file/dict/gopher 限制重定向 :防止绕过检测 网络隔离 :限制内网访问权限 七、总结 Web安全核心是输入输出问题: 非法输入未经严格处理 随意输出导致安全问题 防御关键: 所有输入都视为有害 输出前必须编码过滤 最小权限原则 多层防御策略