专注Web及移动安全[红日安全36期]
字数 2418 2025-08-18 11:37:16

Web及移动安全综合教学文档

一、Web安全漏洞与防护

1.1 文件上传漏洞

  • 漏洞原理:未对上传文件进行充分验证,导致恶意文件上传
  • 攻击方式
    • 上传WebShell(如PHP、JSP等脚本文件)
    • 上传恶意HTML/JS文件进行XSS攻击
    • 上传病毒或恶意软件
  • 防护措施
    • 文件类型白名单验证(不仅检查扩展名,还需检查MIME类型)
    • 文件内容检测(魔术字节验证)
    • 随机重命名上传文件
    • 存储在非Web可访问目录
    • 设置文件大小限制

1.2 XSS(跨站脚本攻击)

  • 类型
    • 存储型XSS(持久化)
    • 反射型XSS(非持久化)
    • DOM型XSS(客户端脚本执行)
  • 绕过技巧
    • 编码绕过(HTML实体、URL编码、Unicode编码)
    • 事件处理属性利用(onerror, onload等)
    • 利用SVG/XML命名空间
    • 使用罕见的HTML标签
  • 防护方案
    • 输入过滤与输出编码
    • 内容安全策略(CSP)
    • HttpOnly Cookie标志
    • 使用X-XSS-Protection头

1.3 账户密码重置漏洞

  • 常见漏洞模式
    • 可预测的重置令牌
    • 未验证用户所有权
    • 令牌未设置有效期
    • 通过用户可控参数修改目标账户
  • 防护建议
    • 使用强随机数生成令牌
    • 设置短有效期(如15分钟)
    • 完整验证流程(旧密码验证+二次验证)
    • 记录重置日志

二、反序列化漏洞专题

2.1 WebLogic反序列化漏洞(CVE-2018-2628)

  • 影响版本:WebLogic 10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3
  • 漏洞原理:T3协议反序列化时未严格验证输入
  • 利用方式
    • 通过T3协议发送恶意序列化对象
    • 使用ysoserial等工具生成payload
  • 修复方案
    • 升级至最新补丁
    • 限制T3协议访问(网络ACL)
    • 启用WebLogic反序列化过滤器

2.2 Java反序列化漏洞利用

  • 常见攻击链
    • Apache Commons Collections
    • Groovy
    • Spring框架
  • Windows挖矿利用
    • 通过Runtime.exec()执行挖矿脚本
    • 使用ProcessBuilder隐藏进程
    • 持久化技术(注册表、启动项)
  • 检测与防护
    • 使用SerialKiller等安全反序列化库
    • JEP 290过滤机制
    • 运行时监控异常反序列化行为

三、渗透测试技术详解

3.1 内网渗透技术

  • Windows密码抓取
    • Mimikatz(sekurlsa::logonpasswords)
    • Procdump + 离线分析
    • SAM数据库提取(reg save HKLM\SYSTEM system.hiv)
    • 哈希传递攻击(PtH)
  • 权限提升方法
    • SUID/SGID滥用(find / -perm -4000)
    • 内核漏洞利用(如CVE-2017-16995)
    • 服务配置错误(未引用路径)
    • 令牌窃取(incognito)

3.2 后门防护技术

  • Shift后门防护
    • 修改sethc.exe权限
    • 监控系统32目录关键文件变更
    • 启用Windows Defender实时保护
    • 部署EDR解决方案

3.3 绕过技术

  • 杀毒软件绕过
    • ReflectivePEInjection技术
    • 进程镂空(Process Hollowing)
    • 内存加密payload
    • 合法进程注入
  • 流量隐藏
    • DNS隧道技术
    • HTTP头部隐蔽信道
    • 端口反向连接
    • 合法云服务中转

四、代码审计技术

4.1 PHP代码审计

  • 解密混淆PHP
    • 静态分析(变量追踪)
    • 动态调试(xdebug)
    • 使用unPHP等工具
    • 正则匹配关键函数
  • 常见漏洞模式
    • extract()变量覆盖
    • unserialize()危险使用
    • 动态函数调用($func())
    • 文件包含未过滤(../)

4.2 WebGoat SQL注入审计

  • 注入类型
    • 基于错误的注入
    • 布尔盲注
    • 时间盲注
    • 联合查询注入
  • 防御方案
    • 参数化查询
    • ORM框架使用
    • 最小权限原则
    • SQL关键字过滤

五、安全工具集

5.1 静态分析工具

  • Mosca
    • 支持多种语言
    • 自定义规则集
    • 集成CI/CD
  • pyt
    • Python专用审计
    • AST分析
    • 污点跟踪

5.2 渗透测试工具

  • Deep Exploit
    • 机器学习辅助
    • 自动化漏洞利用
    • 多阶段攻击链
  • Zarp
    • 中间人攻击
    • 协议分析
    • 模块化设计

5.3 Web审计工具

  • WATOBO
    • 会话管理
    • 主动/被动扫描
    • 插件扩展
  • WebVulScan
    • 爬虫集成
    • 漏洞验证
    • 报告生成

六、高级攻击技术

6.1 SSRF利用

  • 缓存服务滥用
    • Redis未授权访问
    • Memcached放大攻击
    • 内部服务探测
  • 防护措施
    • 网络隔离
    • 请求过滤(禁用file://, dict://)
    • 出口防火墙规则

6.2 Drupal漏洞利用(CVE-2018-7600)

  • 影响版本:Drupal 7.x, 8.x
  • 利用链
    • 表单API注入
    • 反序列化触发
    • 任意代码执行
  • 修复方案
    • 立即升级到安全版本
    • 禁用非必要模块
    • 文件权限限制

七、防御体系建设

7.1 纵深防御策略

  • 网络层ACL
  • 主机层HIDS
  • 应用层WAF
  • 数据层加密

7.2 安全监控

  • 日志集中分析(SIEM)
  • 异常行为检测(UEBA)
  • 文件完整性监控
  • 网络流量分析

7.3 应急响应

  • 事件分类分级
  • 遏制策略(网络隔离,账户禁用)
  • 根因分析
  • 复盘改进

八、CTF实战技巧

8.1 内核PWN解题思路

  • 漏洞定位(代码审计,逆向)
  • 利用链构建
  • 权限上下文分析
  • SMEP/SMAP绕过

8.2 流量分析技术

  • Wireshark过滤语法
  • 协议逆向
  • 隐蔽信道识别
  • 时间序列分析

本教学文档涵盖了Web及移动安全的核心知识点,从基础漏洞原理到高级渗透技术,从代码审计到防御体系建设。建议学习者结合实践环境进行验证,并持续关注安全社区的最新动态。

Web及移动安全综合教学文档 一、Web安全漏洞与防护 1.1 文件上传漏洞 漏洞原理 :未对上传文件进行充分验证,导致恶意文件上传 攻击方式 : 上传WebShell(如PHP、JSP等脚本文件) 上传恶意HTML/JS文件进行XSS攻击 上传病毒或恶意软件 防护措施 : 文件类型白名单验证(不仅检查扩展名,还需检查MIME类型) 文件内容检测(魔术字节验证) 随机重命名上传文件 存储在非Web可访问目录 设置文件大小限制 1.2 XSS(跨站脚本攻击) 类型 : 存储型XSS(持久化) 反射型XSS(非持久化) DOM型XSS(客户端脚本执行) 绕过技巧 : 编码绕过(HTML实体、URL编码、Unicode编码) 事件处理属性利用(onerror, onload等) 利用SVG/XML命名空间 使用罕见的HTML标签 防护方案 : 输入过滤与输出编码 内容安全策略(CSP) HttpOnly Cookie标志 使用X-XSS-Protection头 1.3 账户密码重置漏洞 常见漏洞模式 : 可预测的重置令牌 未验证用户所有权 令牌未设置有效期 通过用户可控参数修改目标账户 防护建议 : 使用强随机数生成令牌 设置短有效期(如15分钟) 完整验证流程(旧密码验证+二次验证) 记录重置日志 二、反序列化漏洞专题 2.1 WebLogic反序列化漏洞(CVE-2018-2628) 影响版本 :WebLogic 10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3 漏洞原理 :T3协议反序列化时未严格验证输入 利用方式 : 通过T3协议发送恶意序列化对象 使用ysoserial等工具生成payload 修复方案 : 升级至最新补丁 限制T3协议访问(网络ACL) 启用WebLogic反序列化过滤器 2.2 Java反序列化漏洞利用 常见攻击链 : Apache Commons Collections Groovy Spring框架 Windows挖矿利用 : 通过Runtime.exec()执行挖矿脚本 使用ProcessBuilder隐藏进程 持久化技术(注册表、启动项) 检测与防护 : 使用SerialKiller等安全反序列化库 JEP 290过滤机制 运行时监控异常反序列化行为 三、渗透测试技术详解 3.1 内网渗透技术 Windows密码抓取 : Mimikatz(sekurlsa::logonpasswords) Procdump + 离线分析 SAM数据库提取(reg save HKLM\SYSTEM system.hiv) 哈希传递攻击(PtH) 权限提升方法 : SUID/SGID滥用(find / -perm -4000) 内核漏洞利用(如CVE-2017-16995) 服务配置错误(未引用路径) 令牌窃取(incognito) 3.2 后门防护技术 Shift后门防护 : 修改sethc.exe权限 监控系统32目录关键文件变更 启用Windows Defender实时保护 部署EDR解决方案 3.3 绕过技术 杀毒软件绕过 : ReflectivePEInjection技术 进程镂空(Process Hollowing) 内存加密payload 合法进程注入 流量隐藏 : DNS隧道技术 HTTP头部隐蔽信道 端口反向连接 合法云服务中转 四、代码审计技术 4.1 PHP代码审计 解密混淆PHP : 静态分析(变量追踪) 动态调试(xdebug) 使用unPHP等工具 正则匹配关键函数 常见漏洞模式 : extract()变量覆盖 unserialize()危险使用 动态函数调用($func()) 文件包含未过滤(../) 4.2 WebGoat SQL注入审计 注入类型 : 基于错误的注入 布尔盲注 时间盲注 联合查询注入 防御方案 : 参数化查询 ORM框架使用 最小权限原则 SQL关键字过滤 五、安全工具集 5.1 静态分析工具 Mosca : 支持多种语言 自定义规则集 集成CI/CD pyt : Python专用审计 AST分析 污点跟踪 5.2 渗透测试工具 Deep Exploit : 机器学习辅助 自动化漏洞利用 多阶段攻击链 Zarp : 中间人攻击 协议分析 模块化设计 5.3 Web审计工具 WATOBO : 会话管理 主动/被动扫描 插件扩展 WebVulScan : 爬虫集成 漏洞验证 报告生成 六、高级攻击技术 6.1 SSRF利用 缓存服务滥用 : Redis未授权访问 Memcached放大攻击 内部服务探测 防护措施 : 网络隔离 请求过滤(禁用file://, dict://) 出口防火墙规则 6.2 Drupal漏洞利用(CVE-2018-7600) 影响版本 :Drupal 7.x, 8.x 利用链 : 表单API注入 反序列化触发 任意代码执行 修复方案 : 立即升级到安全版本 禁用非必要模块 文件权限限制 七、防御体系建设 7.1 纵深防御策略 网络层ACL 主机层HIDS 应用层WAF 数据层加密 7.2 安全监控 日志集中分析(SIEM) 异常行为检测(UEBA) 文件完整性监控 网络流量分析 7.3 应急响应 事件分类分级 遏制策略(网络隔离,账户禁用) 根因分析 复盘改进 八、CTF实战技巧 8.1 内核PWN解题思路 漏洞定位(代码审计,逆向) 利用链构建 权限上下文分析 SMEP/SMAP绕过 8.2 流量分析技术 Wireshark过滤语法 协议逆向 隐蔽信道识别 时间序列分析 本教学文档涵盖了Web及移动安全的核心知识点,从基础漏洞原理到高级渗透技术,从代码审计到防御体系建设。建议学习者结合实践环境进行验证,并持续关注安全社区的最新动态。