谈谈AMF网站的渗透测试
字数 1427 2025-08-18 11:35:42

AMF网站渗透测试全面指南

0x00 AMF技术简介

AMF(Action Message Format)是一种二进制数据格式,主要用于ActionScript中的对象序列化传输。

AMF核心特性

  • 两种版本:AMF0和AMF3(数据流中0×11标记表示AMF3)
  • 基于HTTP协议工作流程:
    1. 获取客户端请求(request)
    2. 服务端反序列化请求
    3. 处理请求
    4. 序列化响应(response)
    5. 返回HTTP响应给客户端
  • 优势:传输效率高

技术参考资料

0x01 测试工具集

主要工具

  1. BurpSuite插件

  2. 其他工具

    • Charles
    • AppScan
    • Flash Player (IE浏览器)
    • Blazer
    • Firebug + AMFExplorer
    • Firebug + Flashbug (未测试)

0x02 实战渗透案例

1. 用户名枚举漏洞

  • 发现方式:登录处发送getuserlistbyname操作请求
  • 利用方法:参数中输入字母(如"a"),返回以该字母开头的所有用户信息
  • 风险:可获取系统用户列表

2. 敏感信息泄露

  • 发现方式:登录处发送getuserbyid请求
  • 利用方法:参数填入数字ID,返回该用户的详细信息(包括加密密码)
  • 典型问题:开发人员直接执行select * from xxx返回全部字段
  • 工具辅助:使用burp-info-extractor提取敏感信息

3. 管理员账户劫持

  1. 通过ID枚举获取管理员加密密码
  2. 登录时抓包修改密码字段为获取的加密密码
  3. 成功以管理员身份登录

4. 暴力破解

  • 方法:将登录数据包发送到Burp的Intruder模块
  • 优势:AMF格式的暴力破解可能绕过传统防护

5. SQL注入漏洞

  • 触发方式
    • 去掉jsessionid值触发报错
    • 使用单引号触发SQL报错
  • POC示例
    <string>bbb&apos; and 1=(ordsys.ord_dicom.getmappingxpath((select banner from sys.v_$version where rownum=1), user, user))--</string>
    
    <string>bbb&apos; and 1=(ctxsys.drithsx.sn(1,(select user from dual)))--</string>
    

6. 未授权访问

  • 检测工具:burp-unauth-checker
  • 示例:去掉jsessionid后可直接获取接收人信息

7. 文件删除漏洞

  • 发现方式:请求中存在delete=false参数
  • 利用方法:将参数改为delete=true
  • 潜在风险:若filePath未做安全处理,可能导致任意文件删除
  • 工具辅助:使用burp-sensitive-param-extractor检测敏感参数

0x03 渗透测试方法论

  1. 数据格式分析:遇到加密/编码数据不要轻易放弃
  2. 工具链组合:合理搭配使用反序列化工具和漏洞检测工具
  3. 参数探测:系统化测试所有可能的参数和操作
  4. 信息关联:将获取的信息(如用户ID、加密密码)关联利用
  5. 自动化辅助:利用插件提高测试效率和覆盖率

0x04 防御建议

  1. 输入验证:对所有AMF请求参数进行严格验证
  2. 权限控制:确保每个操作都有适当的权限检查
  3. 信息最小化:避免返回不必要的字段数据
  4. 错误处理:统一错误响应,避免泄露技术细节
  5. 参数安全:对文件路径等敏感参数进行严格过滤
  6. 会话验证:确保所有操作都验证会话有效性

通过系统化的AMF渗透测试方法,安全人员可以有效发现这类接口中的安全隐患,而开发人员则可根据测试点加强防护措施。

AMF网站渗透测试全面指南 0x00 AMF技术简介 AMF(Action Message Format)是一种二进制数据格式,主要用于ActionScript中的对象序列化传输。 AMF核心特性 两种版本:AMF0和AMF3(数据流中0×11标记表示AMF3) 基于HTTP协议工作流程: 获取客户端请求(request) 服务端反序列化请求 处理请求 序列化响应(response) 返回HTTP响应给客户端 优势:传输效率高 技术参考资料 AMF格式详解 AMF协议分析 AMF技术解析 0x01 测试工具集 主要工具 BurpSuite插件 : AMFDSer-ngng 已知问题:部分响应解码返回空或报异常 相关issue: 解码问题 BurpAMFDser 功能:将AMF反序列化并利用xtream库编码为XML 其他工具 : Charles AppScan Flash Player (IE浏览器) Blazer Firebug + AMFExplorer Firebug + Flashbug (未测试) 0x02 实战渗透案例 1. 用户名枚举漏洞 发现方式 :登录处发送 getuserlistbyname 操作请求 利用方法 :参数中输入字母(如"a"),返回以该字母开头的所有用户信息 风险 :可获取系统用户列表 2. 敏感信息泄露 发现方式 :登录处发送 getuserbyid 请求 利用方法 :参数填入数字ID,返回该用户的详细信息(包括加密密码) 典型问题 :开发人员直接执行 select * from xxx 返回全部字段 工具辅助 :使用burp-info-extractor提取敏感信息 3. 管理员账户劫持 通过ID枚举获取管理员加密密码 登录时抓包修改密码字段为获取的加密密码 成功以管理员身份登录 4. 暴力破解 方法 :将登录数据包发送到Burp的Intruder模块 优势 :AMF格式的暴力破解可能绕过传统防护 5. SQL注入漏洞 触发方式 : 去掉jsessionid值触发报错 使用单引号触发SQL报错 POC示例 : 6. 未授权访问 检测工具 :burp-unauth-checker 示例 :去掉jsessionid后可直接获取接收人信息 7. 文件删除漏洞 发现方式 :请求中存在 delete=false 参数 利用方法 :将参数改为 delete=true 潜在风险 :若filePath未做安全处理,可能导致任意文件删除 工具辅助 :使用burp-sensitive-param-extractor检测敏感参数 0x03 渗透测试方法论 数据格式分析 :遇到加密/编码数据不要轻易放弃 工具链组合 :合理搭配使用反序列化工具和漏洞检测工具 参数探测 :系统化测试所有可能的参数和操作 信息关联 :将获取的信息(如用户ID、加密密码)关联利用 自动化辅助 :利用插件提高测试效率和覆盖率 0x04 防御建议 输入验证 :对所有AMF请求参数进行严格验证 权限控制 :确保每个操作都有适当的权限检查 信息最小化 :避免返回不必要的字段数据 错误处理 :统一错误响应,避免泄露技术细节 参数安全 :对文件路径等敏感参数进行严格过滤 会话验证 :确保所有操作都验证会话有效性 通过系统化的AMF渗透测试方法,安全人员可以有效发现这类接口中的安全隐患,而开发人员则可根据测试点加强防护措施。