专注Web及移动安全[红日安全41期]
字数 3495 2025-08-18 11:37:19

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

一、Web安全核心知识

1.1 SQL注入攻击与防御

  • 攻击方式

    • 360主机卫士SQL注入防御绕过技术(多姿势)
    • 通过参数拼接构造恶意SQL语句
    • 利用注释符(--, #)绕过检测
    • 使用内联注释(/!/)绕过WAF
    • 利用字符串拼接函数(CONCAT, GROUP_CONCAT)绕过过滤
  • 防御方法

    • 使用预编译语句(PreparedStatement)
    • 实施严格的输入验证和过滤
    • 最小权限原则配置数据库账户
    • 使用ORM框架避免直接SQL拼接
    • 部署WAF并定期更新规则

1.2 SSRF(服务器端请求伪造)

  • 原理

    • 攻击者诱使服务器向内部系统发起恶意请求
    • 常见于URL参数处理不当的场景
  • 利用方式

    • 访问内部服务(如redis, memcached)
    • 扫描内网端口和服务
    • 绕过防火墙限制
    • 利用协议处理差异(file://, dict://, gopher://)
  • 绕过技术

    • 使用不同URL编码方式
    • 利用DNS重绑定技术
    • 使用短链接服务
    • 利用302跳转
  • 防御措施

    • 白名单校验目标地址
    • 禁用危险协议(file://, dict://等)
    • 实施网络层隔离
    • 使用专用网络代理服务

1.3 Xpath注入

  • 定位经验
    • 使用绝对路径(/root/child)提高准确性
    • 利用谓词表达式过滤节点([@attribute='value'])
    • 使用通配符(*)匹配未知节点
    • 结合position()函数定位特定位置节点

1.4 HTTP方法安全

  • 风险方法

    • PUT:可能导致任意文件上传
    • DELETE:可能导致文件删除
    • TRACE:可能导致跨站跟踪攻击
    • OPTIONS:泄露服务器信息
  • 防御建议

    • 仅允许必要的HTTP方法(GET, POST)
    • 配置Web服务器过滤危险方法
    • 实施严格的权限控制

1.5 文件包含与遍历漏洞

  • kindeditor文件遍历漏洞

    • 通过构造特殊路径(如../../../etc/passwd)读取系统文件
    • 利用URL编码绕过简单过滤
  • 防御措施

    • 限制文件访问路径为指定目录
    • 禁止用户输入直接作为文件路径
    • 实施严格的权限控制

二、渗透测试技术

2.1 内网渗透

  • 域渗透技术

    • 定位域控制器(DC)的方法

      • 查询DNS记录
      • 扫描389端口(LDAP)
      • 利用net命令(net group "Domain Controllers" /domain)
    • 横向移动技术:

      • Pass-the-Hash攻击
      • 票据传递攻击(Pass-the-Ticket)
      • 利用WMI执行命令
      • 计划任务持久化
    • 权限提升:

      • 利用MS14-068漏洞伪造Kerberos票据
      • 组策略首选项(GPP)漏洞利用
      • 服务账户滥用
  • 端口反弹技术

    • 利用nc、socat等工具建立反向连接
    • DNS隧道技术(Dnscat2)
      • 通过DNS查询建立隐蔽通道
      • 绕过网络出口限制
    • 内网穿透技术:
      • 使用reGeorg建立HTTP隧道
      • 使用ssh动态端口转发

2.2 渗透测试工具链

  • Metasploit框架

    • 模块开发基础

      • Ruby语言基础
      • 模块结构分析
      • 载荷生成原理
    • web_delivery模块:

      • 内存中执行载荷
      • 避免文件落地
      • 适用于受限环境
  • 信息搜集工具

    • 子域名枚举技术
      • 使用搜索引擎(google dork)
      • 证书透明度日志查询
      • DNS暴力破解
    • 端口扫描技术
      • 隐蔽扫描(-sS)
      • 服务识别(-sV)
      • 操作系统识别(-O)

2.3 应急响应

  • 事件处置流程

    1. 确认事件范围和影响
    2. 收集证据和日志
    3. 遏制攻击扩散
    4. 根除攻击源头
    5. 恢复系统运行
    6. 事后分析和加固
  • Linux查杀Webshell

    • 查找可疑文件:
      find /var/www -name "*.php" -mtime -2
      grep -r "eval(" /var/www
      
    • 分析网络连接:
      netstat -antp | grep ESTABLISHED
      lsof -i
      
    • 检查计划任务:
      crontab -l
      ls -la /etc/cron*
      

三、移动安全

3.1 Android序列化漏洞

  • 原理

    • 序列化与反序列化过程不匹配
    • 可能导致对象状态不一致
    • 可能引发类型混淆漏洞
  • 攻击场景

    • 通过Intent传递恶意序列化对象
    • 利用Binder接口进行进程间攻击
    • 篡改本地存储的序列化数据
  • 防御措施

    • 实现严格的serialVersionUID校验
    • 使用自定义序列化过程(writeObject/readObject)
    • 避免反序列化不可信数据
    • 使用签名验证序列化数据完整性

四、安全工具集

4.1 漏洞扫描工具

  • 商业工具

    • AppScan:支持批量扫描和结果分析
    • WVS(Web Vulnerability Scanner):自动化Web应用扫描
  • 开源工具

    • V3n0M:开源漏洞扫描器
      • SQL注入检测
      • XSS检测
      • LFI/RFI检测
    • SSLyze:SSL/TLS配置分析工具
      • 检查支持的协议版本
      • 测试加密套件强度
      • 验证证书有效性

4.2 恶意软件分析

  • Noriben沙箱
    • 基于Python的轻量级沙箱
    • 监控进程行为
    • 记录文件/注册表操作
    • 捕获网络流量

4.3 日志分析

  • LogonTracer
    • 可视化分析Windows安全事件日志
    • 识别异常登录行为
    • 追踪横向移动路径
    • 图形化展示攻击链

4.4 WiFi安全工具

  • 常用工具
    1. Aircrack-ng:WEP/WPA破解
    2. Reaver:WPS PIN暴力破解
    3. Wifite:自动化攻击框架
    4. Kismet:无线网络探测
    5. Fern Wifi Cracker:图形化攻击工具

五、代码审计技术

5.1 ECShop审计案例

  • 任意文件删除漏洞

    • 漏洞位置:admin目录下文件操作功能
    • 利用条件:后台权限或CSRF
    • 攻击效果:删除关键系统文件导致拒绝服务
  • 审计方法

    1. 定位文件操作函数(unlink, delete等)
    2. 追踪用户可控参数传递路径
    3. 检查路径校验逻辑
    4. 验证权限控制机制

5.2 PHP代码审计

  • 常见危险函数

    • 文件操作:fopen, file_get_contents, include
    • 命令执行:system, exec, passthru
    • 数据库操作:mysql_query, mysqli_query
    • 序列化:unserialize
  • 审计流程

    1. 了解应用架构和功能
    2. 识别入口点和数据流
    3. 标记敏感操作和函数调用
    4. 追踪用户输入传递路径
    5. 验证安全控制措施

六、安全开发实践

6.1 安全编码规范

  • 输入验证

    • 白名单优于黑名单
    • 数据类型和范围校验
    • 业务逻辑一致性检查
  • 输出编码

    • 根据上下文选择适当编码(HTML, URL, JS等)
    • 使用安全框架提供的编码函数
    • 避免拼接动态内容
  • 会话管理

    • 使用长随机令牌
    • 实施安全属性(HttpOnly, Secure)
    • 设置合理超时时间
    • 重要操作重新认证

6.2 安全配置基线

  • Linux安全基线
    • 账户安全:
      # 检查空密码账户
      awk -F: '($2 == "") {print $1}' /etc/shadow
      # 检查UID为0的非root账户
      awk -F: '($3 == 0) {print $1}' /etc/passwd | grep -v root
      
    • 服务加固:
      # 关闭不必要服务
      systemctl disable <service_name>
      # 配置SSH安全
      Protocol 2
      PermitRootLogin no
      MaxAuthTries 3
      
    • 文件权限:
      # 关键文件权限检查
      ls -l /etc/passwd /etc/shadow /etc/sudoers
      # 查找SUID/SGID文件
      find / -perm -4000 -o -perm -2000 -type f -exec ls -ld {} \;
      

七、前沿安全研究

7.1 区块链安全

  • EOS漏洞分析
    • 远程代码执行漏洞
    • 节点间通信协议缺陷
    • 智能合约虚拟机漏洞
    • 共识机制攻击面

7.2 IoT安全

  • VPNFilter恶意软件
    • 针对路由器的僵尸网络
    • 模块化设计,功能可扩展
    • 持久化技术分析
    • 通信加密和C2架构

7.3 CSP绕过技术

  • Firefox CVE-2018-5175
    • 内容安全策略(CSP)实现缺陷
    • 通过特定字符序列绕过限制
    • 导致XSS攻击可能

八、实战案例研究

8.1 从WebShell到域控

  • 攻击路径

    1. 通过Web漏洞上传WebShell
    2. 提权获取服务器权限
    3. 收集域内凭证和配置信息
    4. 利用域漏洞横向移动
    5. 最终获取域管理员权限
  • 关键技巧

    • 凭证转储(sekurlsa::logonpasswords)
    • 黄金票据伪造
    • 组策略对象滥用
    • 隐蔽持久化技术

8.2 游戏钓鱼站群攻陷

  • 攻击方法

    1. 识别站群管理后台
    2. 通过弱口令或漏洞获取权限
    3. 分析站群结构和数据流
    4. 获取支付接口和用户数据
    5. 追踪资金流向
  • 防御建议

    • 多因素认证管理后台
    • 定期安全审计
    • 业务隔离部署
    • 敏感操作日志记录

九、持续学习资源

9.1 技术社区

  • FreeBuf:安全行业门户,最新漏洞和工具资讯
  • Exploit-DB:漏洞利用代码库
  • OWASP:Web安全权威指南

9.2 会议资料

  • xKungfoo 2018大会PPT:
    • 前沿攻击技术分享
    • 企业安全建设实践
    • 物联网安全研究

9.3 CTF比赛

  • ISCC 2018 Writeup:
    • Web题目解题思路
    • 逆向工程技巧
    • 密码学分析

本教学文档涵盖了Web及移动安全的核心知识点,从基础理论到实战技巧,从工具使用到代码审计,形成了完整的安全知识体系。建议读者结合实际环境进行实践,并持续关注安全社区获取最新研究动态。

Web及移动安全综合教学文档 一、Web安全核心知识 1.1 SQL注入攻击与防御 攻击方式 : 360主机卫士SQL注入防御绕过技术(多姿势) 通过参数拼接构造恶意SQL语句 利用注释符(--, #)绕过检测 使用内联注释(/ ! /)绕过WAF 利用字符串拼接函数(CONCAT, GROUP_ CONCAT)绕过过滤 防御方法 : 使用预编译语句(PreparedStatement) 实施严格的输入验证和过滤 最小权限原则配置数据库账户 使用ORM框架避免直接SQL拼接 部署WAF并定期更新规则 1.2 SSRF(服务器端请求伪造) 原理 : 攻击者诱使服务器向内部系统发起恶意请求 常见于URL参数处理不当的场景 利用方式 : 访问内部服务(如redis, memcached) 扫描内网端口和服务 绕过防火墙限制 利用协议处理差异(file://, dict://, gopher://) 绕过技术 : 使用不同URL编码方式 利用DNS重绑定技术 使用短链接服务 利用302跳转 防御措施 : 白名单校验目标地址 禁用危险协议(file://, dict://等) 实施网络层隔离 使用专用网络代理服务 1.3 Xpath注入 定位经验 : 使用绝对路径(/root/child)提高准确性 利用谓词表达式过滤节点([ @attribute='value' ]) 使用通配符(* )匹配未知节点 结合position()函数定位特定位置节点 1.4 HTTP方法安全 风险方法 : PUT:可能导致任意文件上传 DELETE:可能导致文件删除 TRACE:可能导致跨站跟踪攻击 OPTIONS:泄露服务器信息 防御建议 : 仅允许必要的HTTP方法(GET, POST) 配置Web服务器过滤危险方法 实施严格的权限控制 1.5 文件包含与遍历漏洞 kindeditor文件遍历漏洞 : 通过构造特殊路径(如../../../etc/passwd)读取系统文件 利用URL编码绕过简单过滤 防御措施 : 限制文件访问路径为指定目录 禁止用户输入直接作为文件路径 实施严格的权限控制 二、渗透测试技术 2.1 内网渗透 域渗透技术 : 定位域控制器(DC)的方法 查询DNS记录 扫描389端口(LDAP) 利用net命令(net group "Domain Controllers" /domain) 横向移动技术: Pass-the-Hash攻击 票据传递攻击(Pass-the-Ticket) 利用WMI执行命令 计划任务持久化 权限提升: 利用MS14-068漏洞伪造Kerberos票据 组策略首选项(GPP)漏洞利用 服务账户滥用 端口反弹技术 : 利用nc、socat等工具建立反向连接 DNS隧道技术(Dnscat2) 通过DNS查询建立隐蔽通道 绕过网络出口限制 内网穿透技术: 使用reGeorg建立HTTP隧道 使用ssh动态端口转发 2.2 渗透测试工具链 Metasploit框架 : 模块开发基础 Ruby语言基础 模块结构分析 载荷生成原理 web_ delivery模块: 内存中执行载荷 避免文件落地 适用于受限环境 信息搜集工具 : 子域名枚举技术 使用搜索引擎(google dork) 证书透明度日志查询 DNS暴力破解 端口扫描技术 隐蔽扫描(-sS) 服务识别(-sV) 操作系统识别(-O) 2.3 应急响应 事件处置流程 : 确认事件范围和影响 收集证据和日志 遏制攻击扩散 根除攻击源头 恢复系统运行 事后分析和加固 Linux查杀Webshell : 查找可疑文件: 分析网络连接: 检查计划任务: 三、移动安全 3.1 Android序列化漏洞 原理 : 序列化与反序列化过程不匹配 可能导致对象状态不一致 可能引发类型混淆漏洞 攻击场景 : 通过Intent传递恶意序列化对象 利用Binder接口进行进程间攻击 篡改本地存储的序列化数据 防御措施 : 实现严格的serialVersionUID校验 使用自定义序列化过程(writeObject/readObject) 避免反序列化不可信数据 使用签名验证序列化数据完整性 四、安全工具集 4.1 漏洞扫描工具 商业工具 : AppScan:支持批量扫描和结果分析 WVS(Web Vulnerability Scanner):自动化Web应用扫描 开源工具 : V3n0M:开源漏洞扫描器 SQL注入检测 XSS检测 LFI/RFI检测 SSLyze:SSL/TLS配置分析工具 检查支持的协议版本 测试加密套件强度 验证证书有效性 4.2 恶意软件分析 Noriben沙箱 : 基于Python的轻量级沙箱 监控进程行为 记录文件/注册表操作 捕获网络流量 4.3 日志分析 LogonTracer : 可视化分析Windows安全事件日志 识别异常登录行为 追踪横向移动路径 图形化展示攻击链 4.4 WiFi安全工具 常用工具 : Aircrack-ng:WEP/WPA破解 Reaver:WPS PIN暴力破解 Wifite:自动化攻击框架 Kismet:无线网络探测 Fern Wifi Cracker:图形化攻击工具 五、代码审计技术 5.1 ECShop审计案例 任意文件删除漏洞 : 漏洞位置:admin目录下文件操作功能 利用条件:后台权限或CSRF 攻击效果:删除关键系统文件导致拒绝服务 审计方法 : 定位文件操作函数(unlink, delete等) 追踪用户可控参数传递路径 检查路径校验逻辑 验证权限控制机制 5.2 PHP代码审计 常见危险函数 : 文件操作:fopen, file_ get_ contents, include 命令执行:system, exec, passthru 数据库操作:mysql_ query, mysqli_ query 序列化:unserialize 审计流程 : 了解应用架构和功能 识别入口点和数据流 标记敏感操作和函数调用 追踪用户输入传递路径 验证安全控制措施 六、安全开发实践 6.1 安全编码规范 输入验证 : 白名单优于黑名单 数据类型和范围校验 业务逻辑一致性检查 输出编码 : 根据上下文选择适当编码(HTML, URL, JS等) 使用安全框架提供的编码函数 避免拼接动态内容 会话管理 : 使用长随机令牌 实施安全属性(HttpOnly, Secure) 设置合理超时时间 重要操作重新认证 6.2 安全配置基线 Linux安全基线 : 账户安全: 服务加固: 文件权限: 七、前沿安全研究 7.1 区块链安全 EOS漏洞分析 : 远程代码执行漏洞 节点间通信协议缺陷 智能合约虚拟机漏洞 共识机制攻击面 7.2 IoT安全 VPNFilter恶意软件 : 针对路由器的僵尸网络 模块化设计,功能可扩展 持久化技术分析 通信加密和C2架构 7.3 CSP绕过技术 Firefox CVE-2018-5175 : 内容安全策略(CSP)实现缺陷 通过特定字符序列绕过限制 导致XSS攻击可能 八、实战案例研究 8.1 从WebShell到域控 攻击路径 : 通过Web漏洞上传WebShell 提权获取服务器权限 收集域内凭证和配置信息 利用域漏洞横向移动 最终获取域管理员权限 关键技巧 : 凭证转储(sekurlsa::logonpasswords) 黄金票据伪造 组策略对象滥用 隐蔽持久化技术 8.2 游戏钓鱼站群攻陷 攻击方法 : 识别站群管理后台 通过弱口令或漏洞获取权限 分析站群结构和数据流 获取支付接口和用户数据 追踪资金流向 防御建议 : 多因素认证管理后台 定期安全审计 业务隔离部署 敏感操作日志记录 九、持续学习资源 9.1 技术社区 FreeBuf:安全行业门户,最新漏洞和工具资讯 Exploit-DB:漏洞利用代码库 OWASP:Web安全权威指南 9.2 会议资料 xKungfoo 2018大会PPT: 前沿攻击技术分享 企业安全建设实践 物联网安全研究 9.3 CTF比赛 ISCC 2018 Writeup: Web题目解题思路 逆向工程技巧 密码学分析 本教学文档涵盖了Web及移动安全的核心知识点,从基础理论到实战技巧,从工具使用到代码审计,形成了完整的安全知识体系。建议读者结合实际环境进行实践,并持续关注安全社区获取最新研究动态。