Web安全常见问题
字数 3049 2025-08-20 18:18:10

Web安全常见问题与渗透测试全面指南

1. 网络基础协议

1.1 OSI模型与TCP/IP协议栈

OSI七层模型

  • 物理层
  • 数据链路层
  • 网络层
  • 传输层
  • 会话层
  • 表示层
  • 应用层

五层协议简化模型

  • 物理层
  • 数据链路层
  • 网络层
  • 传输层
  • 应用层

1.2 HTTP请求类型

方法 描述
GET 请求的数据在URL头
POST 请求的数据在请求体
PUT 更新资源
DELETE 删除资源
CONNECT HTTP/1.1协议中预留给代理服务器
OPTIONS 描述目标资源的通信选项
TRACE 回显服务器收到的请求,用于测试
PATCH 修改资源的部分内容(HTTP/1.1新增)

1.3 网络诊断基础

网络连通性排查步骤

  1. ping 127.0.0.1 - 检查本机TCP/IP协议
  2. ping 本机IP - 检查网卡/驱动
  3. ping 同网段IP - 检查交换机/VLAN
  4. ping 网关IP - 检查本地网络
  5. ping 公网IP - 检查路由

DNS问题诊断

  • QQ/微信可用但网页打不开通常是DNS问题

2. 常见Web漏洞

2.1 XSS跨站脚本攻击

原理

  • 被动攻击,通过注入恶意Script代码到Web页面
  • 当用户浏览时执行恶意代码

分类

  1. 反射型:经过后端,不经过数据库(常见于留言板、论坛)
  2. 存储型:经过后端和数据库(常见于URL、搜索框)
  3. DOM型:基于DOM模型,不与服务器交互

Payload构造与绕过

  • 基本Payload:<script>alert(1)</script>
  • 双写绕过:<sc<script>alert(1)</script>
  • 大小写绕过:<ScRIpt>alert(1)</sCriPt>
  • 标签绕过:

2.2 逻辑漏洞

常见类型

  1. 验证码漏洞

    • 重复使用
    • 绕过
    • 回显
    • 自动识别
  2. 越权漏洞

    • 垂直越权:访问更高权限账户
    • 水平越权:访问同级其他账户
  3. 密码漏洞

    • 密码更改漏洞:不验证旧密码
    • 密码重置漏洞:验证逻辑不严
  4. 支付漏洞

    • 修改支付金额
    • 越权支付
    • 支付接口漏洞

2.3 CSRF跨站请求伪造

原理

  • 欺骗用户浏览器访问已认证站点并执行操作
  • 利用用户已保存的认证状态

防御措施

  • CSRF令牌验证
  • 表单隐藏字段
  • 自定义请求头(X-CSRF-Token)
  • SameSite Cookie属性
  • Referer头验证

2.4 SSRF服务器端请求伪造

漏洞成因

  1. 服务端提供从其他服务器获取数据的功能
  2. 服务端对目标地址过滤不严

攻击目标

  • 内网系统扫描
  • Web应用指纹识别
  • 内网漏洞利用

2.5 反序列化漏洞

原理

  • 反序列化不可信数据时执行恶意代码

PHP利用方式

  • __wakeup()绕过
  • Session漏洞利用
  • PHAR文件利用

防御措施

  • 使用JSON/XML替代
  • 严格输入验证
  • 类白名单
  • 最小权限原则

常见漏洞

  • Shiro反序列化
  • WebLogic反序列化

3. 渗透测试流程

3.1 网站渗透测试流程

  1. 信息收集

    • 服务器信息(IP、系统类型、开放端口、WAF)
    • 网站指纹(CMS、CDN、证书)
    • Whois信息
    • 子域名、旁站、C段
    • Google Hacking
    • 目录扫描
  2. 漏洞挖掘

    • 端口/弱口令扫描
    • XSS/SQL注入测试
    • 上传漏洞检测
    • CSRF检测
    • 使用漏扫工具
  3. 漏洞利用与提权

    • MySQL/Serv-U/Oracle提权
    • Windows溢出提权
    • Linux脏牛提权
  4. 清除数据与报告

    • 日志清理
    • 输出渗透报告
  5. 复测

    • 验证修复情况
    • 输出最终报告

3.2 内网渗透流程

  1. 信息收集

    • 存活IP扫描
    • 端口服务识别
  2. 弱口令检测

    • 系统服务(IPC$、SSH、Telnet)
    • 数据库服务(MSSQL、MySQL)
    • Web服务(WebLogic、Tomcat、JBoss)
  3. 提权与横向移动

    • 读取缓存密码
    • 利用获取的凭证横向移动

4. 协议详解

4.1 ARP协议与欺骗

ARP协议作用

  • IP地址到MAC地址的转换

ARP欺骗原理

  1. 扫描网络拓扑
  2. 构造伪造ARP报文
  3. 发送伪造报文
  4. 更新目标ARP缓存
  5. 截获数据包

防御措施

  • 静态ARP缓存
  • IP-MAC绑定
  • ARP防火墙
  • 加密协议

4.2 TCP与UDP

TCP特点

  • 面向连接、可靠
  • 流量控制、拥塞控制
  • 面向字节流
  • 协议号6

UDP特点

  • 无连接、不可靠
  • 面向报文
  • 协议号17
  • 无发送缓冲区

三次握手

  1. 客户端发送SYN=x
  2. 服务端回复SYN=y, ACK=x+1
  3. 客户端发送ACK=y+1

四次挥手

  1. 主机1发送FIN
  2. 主机2回复ACK
  3. 主机2发送FIN
  4. 主机1回复ACK

4.3 DNS协议

  • 使用UDP 53端口
  • 解析文件位置:
    • Windows: C:\Windows\System32\drivers\etc\hosts
    • Linux: /etc/hosts
  • 解析方式:迭代/递归

4.4 NAT协议

功能

  • 地址复用
  • 地址隐藏
  • 简化管理
  • 负载均衡
  • 透明代理

5. 安全工具与技术

5.1 常见渗透测试工具

工具 用途
BurpSuite HTTP请求拦截修改、漏洞测试
Sqlmap SQL注入检测与利用
御剑 目录扫描
Mimikatz 抓取系统明文密码
OWASP ZAP/AWVS 漏洞扫描
Nmap/Masscan 端口扫描、服务识别

5.2 PKI公钥基础设施

组成

  • 数字证书
  • 证书颁发机构(CA)
  • 注册机构
  • 证书存储

功能

  1. 身份验证
  2. 加密通信
  3. 数字签名

5.3 WAF与IDS/IPS

WAF(Web应用防火墙)

  • 过滤Web流量
  • 检测SQL注入/XSS/CSRF等攻击
  • 工作原理:
    1. 流量识别
    2. 攻击检测
    3. 攻击响应
    4. 日志记录

IDS(入侵检测系统)

  • 被动监测
  • 分类:
    • 基于网络
    • 基于主机
  • 技术途径:
    • 信息收集
    • 数据分析

IPS(入侵防御系统)

  • 主动防御
  • 分类:
    • HIPS(基于主机)
    • NIPS(基于网络)

6. 系统安全

6.1 Linux安全

  • 用户密码存放:/etc/passwd/etc/shadow
  • 常见提权方式:
    • 脏牛漏洞
    • 内核漏洞
    • 服务配置不当

6.2 SQL注入Getshell

into outfile条件

  1. Web目录可写
  2. 知道绝对路径
  3. secure_file_priv无限制

查看secure_file_priv

SHOW GLOBAL VARIABLES LIKE '%secure%';

写入一句话木马

SELECT '<?php @eval($_POST[cmd]);?>' INTO OUTFILE '/var/www/html/shell.php';

sqlmap --os-shell原理

  1. 注入SQL写入PHP文件
  2. 上传执行文件
  3. 执行系统命令

7. OWASP Top 10 2023

  1. 对象级别授权失效(水平越权)
  2. 失效的身份认证
  3. 对象属性级别授权失效
  4. 资源消耗无限制(DDoS)
  5. 功能级授权失效(垂直越权)
  6. 访问敏感业务流无限制(撞库、爬虫)
  7. 服务器端请求伪造(SSRF)
  8. 安全配置错误
  9. 库存管理不当
  10. API不安全使用

8. 防御最佳实践

  1. 输入验证与过滤
  2. 最小权限原则
  3. 定期更新与补丁
  4. 安全配置基线
  5. 日志记录与监控
  6. 加密通信
  7. 安全编码实践
  8. 渗透测试与审计
  9. 安全意识培训
  10. 应急响应计划
Web安全常见问题与渗透测试全面指南 1. 网络基础协议 1.1 OSI模型与TCP/IP协议栈 OSI七层模型 : 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 五层协议简化模型 : 物理层 数据链路层 网络层 传输层 应用层 1.2 HTTP请求类型 | 方法 | 描述 | |------|------| | GET | 请求的数据在URL头 | | POST | 请求的数据在请求体 | | PUT | 更新资源 | | DELETE | 删除资源 | | CONNECT | HTTP/1.1协议中预留给代理服务器 | | OPTIONS | 描述目标资源的通信选项 | | TRACE | 回显服务器收到的请求,用于测试 | | PATCH | 修改资源的部分内容(HTTP/1.1新增) | 1.3 网络诊断基础 网络连通性排查步骤 : ping 127.0.0.1 - 检查本机TCP/IP协议 ping 本机IP - 检查网卡/驱动 ping 同网段IP - 检查交换机/VLAN ping 网关IP - 检查本地网络 ping 公网IP - 检查路由 DNS问题诊断 : QQ/微信可用但网页打不开通常是DNS问题 2. 常见Web漏洞 2.1 XSS跨站脚本攻击 原理 : 被动攻击,通过注入恶意Script代码到Web页面 当用户浏览时执行恶意代码 分类 : 反射型 :经过后端,不经过数据库(常见于留言板、论坛) 存储型 :经过后端和数据库(常见于URL、搜索框) DOM型 :基于DOM模型,不与服务器交互 Payload构造与绕过 : 基本Payload: <script>alert(1)</script> 双写绕过: <sc<script>alert(1)</script> 大小写绕过: <ScRIpt>alert(1)</sCriPt> 标签绕过: 2.2 逻辑漏洞 常见类型 : 验证码漏洞 : 重复使用 绕过 回显 自动识别 越权漏洞 : 垂直越权:访问更高权限账户 水平越权:访问同级其他账户 密码漏洞 : 密码更改漏洞:不验证旧密码 密码重置漏洞:验证逻辑不严 支付漏洞 : 修改支付金额 越权支付 支付接口漏洞 2.3 CSRF跨站请求伪造 原理 : 欺骗用户浏览器访问已认证站点并执行操作 利用用户已保存的认证状态 防御措施 : CSRF令牌验证 表单隐藏字段 自定义请求头(X-CSRF-Token) SameSite Cookie属性 Referer头验证 2.4 SSRF服务器端请求伪造 漏洞成因 : 服务端提供从其他服务器获取数据的功能 服务端对目标地址过滤不严 攻击目标 : 内网系统扫描 Web应用指纹识别 内网漏洞利用 2.5 反序列化漏洞 原理 : 反序列化不可信数据时执行恶意代码 PHP利用方式 : __wakeup() 绕过 Session漏洞利用 PHAR文件利用 防御措施 : 使用JSON/XML替代 严格输入验证 类白名单 最小权限原则 常见漏洞 : Shiro反序列化 WebLogic反序列化 3. 渗透测试流程 3.1 网站渗透测试流程 信息收集 : 服务器信息(IP、系统类型、开放端口、WAF) 网站指纹(CMS、CDN、证书) Whois信息 子域名、旁站、C段 Google Hacking 目录扫描 漏洞挖掘 : 端口/弱口令扫描 XSS/SQL注入测试 上传漏洞检测 CSRF检测 使用漏扫工具 漏洞利用与提权 : MySQL/Serv-U/Oracle提权 Windows溢出提权 Linux脏牛提权 清除数据与报告 : 日志清理 输出渗透报告 复测 : 验证修复情况 输出最终报告 3.2 内网渗透流程 信息收集 : 存活IP扫描 端口服务识别 弱口令检测 : 系统服务(IPC$、SSH、Telnet) 数据库服务(MSSQL、MySQL) Web服务(WebLogic、Tomcat、JBoss) 提权与横向移动 : 读取缓存密码 利用获取的凭证横向移动 4. 协议详解 4.1 ARP协议与欺骗 ARP协议作用 : IP地址到MAC地址的转换 ARP欺骗原理 : 扫描网络拓扑 构造伪造ARP报文 发送伪造报文 更新目标ARP缓存 截获数据包 防御措施 : 静态ARP缓存 IP-MAC绑定 ARP防火墙 加密协议 4.2 TCP与UDP TCP特点 : 面向连接、可靠 流量控制、拥塞控制 面向字节流 协议号6 UDP特点 : 无连接、不可靠 面向报文 协议号17 无发送缓冲区 三次握手 : 客户端发送SYN=x 服务端回复SYN=y, ACK=x+1 客户端发送ACK=y+1 四次挥手 : 主机1发送FIN 主机2回复ACK 主机2发送FIN 主机1回复ACK 4.3 DNS协议 使用UDP 53端口 解析文件位置: Windows: C:\Windows\System32\drivers\etc\hosts Linux: /etc/hosts 解析方式:迭代/递归 4.4 NAT协议 功能 : 地址复用 地址隐藏 简化管理 负载均衡 透明代理 5. 安全工具与技术 5.1 常见渗透测试工具 | 工具 | 用途 | |------|------| | BurpSuite | HTTP请求拦截修改、漏洞测试 | | Sqlmap | SQL注入检测与利用 | | 御剑 | 目录扫描 | | Mimikatz | 抓取系统明文密码 | | OWASP ZAP/AWVS | 漏洞扫描 | | Nmap/Masscan | 端口扫描、服务识别 | 5.2 PKI公钥基础设施 组成 : 数字证书 证书颁发机构(CA) 注册机构 证书存储 功能 : 身份验证 加密通信 数字签名 5.3 WAF与IDS/IPS WAF(Web应用防火墙) : 过滤Web流量 检测SQL注入/XSS/CSRF等攻击 工作原理: 流量识别 攻击检测 攻击响应 日志记录 IDS(入侵检测系统) : 被动监测 分类: 基于网络 基于主机 技术途径: 信息收集 数据分析 IPS(入侵防御系统) : 主动防御 分类: HIPS(基于主机) NIPS(基于网络) 6. 系统安全 6.1 Linux安全 用户密码存放: /etc/passwd 和 /etc/shadow 常见提权方式: 脏牛漏洞 内核漏洞 服务配置不当 6.2 SQL注入Getshell into outfile条件 : Web目录可写 知道绝对路径 secure_ file_ priv无限制 查看secure_ file_ priv : 写入一句话木马 : sqlmap --os-shell原理 : 注入SQL写入PHP文件 上传执行文件 执行系统命令 7. OWASP Top 10 2023 对象级别授权失效(水平越权) 失效的身份认证 对象属性级别授权失效 资源消耗无限制(DDoS) 功能级授权失效(垂直越权) 访问敏感业务流无限制(撞库、爬虫) 服务器端请求伪造(SSRF) 安全配置错误 库存管理不当 API不安全使用 8. 防御最佳实践 输入验证与过滤 最小权限原则 定期更新与补丁 安全配置基线 日志记录与监控 加密通信 安全编码实践 渗透测试与审计 安全意识培训 应急响应计划