渗透测试之小白的常见web漏洞总结(下)
字数 1732 2025-08-15 21:31:54

Web常见漏洞总结与防护指南

文件包含漏洞

基本概念

文件包含漏洞源于PHP的特性:即使包含的文件不是PHP类型也不会报错,且其中包含的PHP代码也会执行。这与任意文件下载漏洞相似,区别在于一个是解析,一个是下载。

利用方式

  1. 向服务器写马

    • 在图片中写入恶意代码(结合文件上传)
    • 在错误日志中写入恶意代码(错误访问会被记录)
    • 在session中写入恶意代码
    • 访问这些文件使服务器生成木马,实现getshell
  2. 读取敏感文件

    • 结合目录遍历漏洞读取敏感文件
  3. PHP伪协议

    • 利用伪协议读取文件或执行命令

防护措施

  • 使用安全狗、防火墙或D盾等防护工具

测试方法

  1. 手动测试payload判断漏洞存在性和防护情况
  2. 尝试绕过防护措施
  3. 使用LFISuite工具进行测试

反序列化漏洞

基本概念

序列化是将类对象转化为字符串或字节流(也可转为XML、JSON),反序列化是其逆过程。

利用方式

  • 前台构造序列化数据,传输到后台,经过复杂调用最终触发命令执行
  • 需要对后端代码有深入了解,目前多为针对组件的漏洞利用

常见反序列化漏洞

  • Apache-Commons-Collections漏洞
  • Weblogic系列漏洞
  • Apache Tomcat版本系列漏洞
  • Shiro反序列化漏洞

扫描工具

  • Goby

敏感信息泄漏

常见泄漏内容

  • 重要URL(前端JS代码中可能泄漏)
  • 重要文件或目录(robots.txt、路径爆破)
  • 邮箱、手机号、用户名、电话、密码
  • 网站源码、数据库文件等

挖掘思路

  • Google搜索法
  • GitHub搜索法
  • 暴力扫描
  • 邮箱收集器
  • 特定程序的特定目录

跨站请求伪造(CSRF)

基本概念

攻击者诱使用户点击恶意链接,当用户浏览器中对目标网站的cookie有效且目标网站校验不严格时,攻击者可盗用用户cookie进入后台。

防护措施

  • 使用防火墙

测试方法

  1. 删除请求包的Referer字段,如仍能访问则可能有CSRF漏洞
  2. 使用BP、CSRFTester、CSRF Request Builder等工具

跨站脚本(XSS)

基本概念

攻击者在网页中嵌入客户端脚本(如JavaScript),当用户浏览时脚本执行,可获取用户Cookie、导航到恶意网站或携带木马等。

漏洞原因

用户输入的数据变成了代码,未对用户输入进行HTML Encode处理。

利用方式

  1. Dom-Based XSS

    • 通过邮件发送含漏洞的链接
    • 在用户浏览器执行恶意脚本获取数据并发送到攻击者服务器
  2. 存储型XSS

    • 常见于留言板等
    • 在漏洞页面嵌入恶意脚本提交到服务器
    • 他人浏览时触发恶意代码盗取信息

防护措施

  • 防火墙、D盾等

测试方法

  1. 手动测试,常用payload:/><script>alert(document.cookie)</script><!--
  2. 尝试绕过防护
  3. 使用BP、XSpear、XSSer等工具

服务端请求伪造(SSRF)

基本概念

网站从其他服务器加载数据时,如果将请求URL作为参数,攻击者可将其替换为内网地址实现内网访问。

相关函数

  • curl()
  • file_get_contents()
  • fopen()
  • fsocksopen()

利用方式

  1. 对内网进行信息收集(端口、指纹等)
  2. 使用curl支持的其他协议(file、http、dict、gopher等)
  3. 对内网进行漏洞利用

测试方法

  1. 手动测试常用payload
  2. 使用BP自带扫描器、SSRFmap等工具
  3. 尝试绕过防护

XML外部实体注入(XXE)

基本概念

当服务器允许解析XML外部实体(默认关闭)时,通过注入恶意XML外部实体可能造成:

  • 任意文件读取
  • 内网端口扫描
  • 命令执行(条件苛刻)
  • DDOS(条件苛刻)

防护措施

  • 防火墙(安全狗无此功能)
  • D盾部分拦截

测试方法

  1. 手动测试常用payload
  2. 使用BP自带扫描、BP插件Hacker Bar、XXEinjector工具

逻辑漏洞

特点

  • 属于正常流量,难以防护
  • 隐蔽性强,开发中难以发现

常见测试点

  • 登录处
  • 密码找回
  • 支付页面等有价值的地方

常见类型

  • 用户名或其他信息可枚举
  • 验证码绕过
  • 验证码可爆破
  • 验证码回传
  • 验证码未绑定用户
  • 订单金额任意修改
  • 越权访问等
Web常见漏洞总结与防护指南 文件包含漏洞 基本概念 文件包含漏洞源于PHP的特性:即使包含的文件不是PHP类型也不会报错,且其中包含的PHP代码也会执行。这与任意文件下载漏洞相似,区别在于一个是解析,一个是下载。 利用方式 向服务器写马 : 在图片中写入恶意代码(结合文件上传) 在错误日志中写入恶意代码(错误访问会被记录) 在session中写入恶意代码 访问这些文件使服务器生成木马,实现getshell 读取敏感文件 : 结合目录遍历漏洞读取敏感文件 PHP伪协议 : 利用伪协议读取文件或执行命令 防护措施 使用安全狗、防火墙或D盾等防护工具 测试方法 手动测试payload判断漏洞存在性和防护情况 尝试绕过防护措施 使用LFISuite工具进行测试 反序列化漏洞 基本概念 序列化是将类对象转化为字符串或字节流(也可转为XML、JSON),反序列化是其逆过程。 利用方式 前台构造序列化数据,传输到后台,经过复杂调用最终触发命令执行 需要对后端代码有深入了解,目前多为针对组件的漏洞利用 常见反序列化漏洞 Apache-Commons-Collections漏洞 Weblogic系列漏洞 Apache Tomcat版本系列漏洞 Shiro反序列化漏洞 扫描工具 Goby 敏感信息泄漏 常见泄漏内容 重要URL(前端JS代码中可能泄漏) 重要文件或目录(robots.txt、路径爆破) 邮箱、手机号、用户名、电话、密码 网站源码、数据库文件等 挖掘思路 Google搜索法 GitHub搜索法 暴力扫描 邮箱收集器 特定程序的特定目录 跨站请求伪造(CSRF) 基本概念 攻击者诱使用户点击恶意链接,当用户浏览器中对目标网站的cookie有效且目标网站校验不严格时,攻击者可盗用用户cookie进入后台。 防护措施 使用防火墙 测试方法 删除请求包的Referer字段,如仍能访问则可能有CSRF漏洞 使用BP、CSRFTester、CSRF Request Builder等工具 跨站脚本(XSS) 基本概念 攻击者在网页中嵌入客户端脚本(如JavaScript),当用户浏览时脚本执行,可获取用户Cookie、导航到恶意网站或携带木马等。 漏洞原因 用户输入的数据变成了代码,未对用户输入进行HTML Encode处理。 利用方式 Dom-Based XSS : 通过邮件发送含漏洞的链接 在用户浏览器执行恶意脚本获取数据并发送到攻击者服务器 存储型XSS : 常见于留言板等 在漏洞页面嵌入恶意脚本提交到服务器 他人浏览时触发恶意代码盗取信息 防护措施 防火墙、D盾等 测试方法 手动测试,常用payload: /><script>alert(document.cookie)</script><!-- 尝试绕过防护 使用BP、XSpear、XSSer等工具 服务端请求伪造(SSRF) 基本概念 网站从其他服务器加载数据时,如果将请求URL作为参数,攻击者可将其替换为内网地址实现内网访问。 相关函数 curl() file_ get_ contents() fopen() fsocksopen() 利用方式 对内网进行信息收集(端口、指纹等) 使用curl支持的其他协议(file、http、dict、gopher等) 对内网进行漏洞利用 测试方法 手动测试常用payload 使用BP自带扫描器、SSRFmap等工具 尝试绕过防护 XML外部实体注入(XXE) 基本概念 当服务器允许解析XML外部实体(默认关闭)时,通过注入恶意XML外部实体可能造成: 任意文件读取 内网端口扫描 命令执行(条件苛刻) DDOS(条件苛刻) 防护措施 防火墙(安全狗无此功能) D盾部分拦截 测试方法 手动测试常用payload 使用BP自带扫描、BP插件Hacker Bar、XXEinjector工具 逻辑漏洞 特点 属于正常流量,难以防护 隐蔽性强,开发中难以发现 常见测试点 登录处 密码找回 支付页面等有价值的地方 常见类型 用户名或其他信息可枚举 验证码绕过 验证码可爆破 验证码回传 验证码未绑定用户 订单金额任意修改 越权访问等