记一次攻防演练通过SQL注入和RCE拿下靶标的故事
字数 1094 2025-09-04 23:22:12

通过SQL注入和RCE攻防演练实战教学

1. 加密请求分析与处理

1.1 识别加密机制

  • 系统使用加密请求,需要先分析加解密逻辑
  • 通过断点调试定位加解密函数位置
  • 常见加密类型:AES、RSA等对称/非对称加密

1.2 使用mitmproxy处理加密

  • 推荐工具:mitmproxy中间人代理
  • 可使用现成脚本处理加解密:mitmproxySecurityScripts
  • 处理流程:
    1. 拦截加密请求
    2. 解密请求内容
    3. 修改请求参数
    4. 重新加密发送

2. SQL注入攻击实战

2.1 初步注入测试

  • 手注确认存在SQL注入漏洞
  • 通过USER命令判断数据库类型(本例为MSSQL)

2.2 SQLMap高级使用

  • 指定数据库类型:--dbms=mssql
  • 使用特定技术:--technique=B(盲注)
  • 处理JSON干扰:可能需要自定义tamper脚本
  • 常见问题:
    • 误判:需手动验证注入点
    • 盲注速度慢:需要耐心或寻找其他注入点

2.3 多系统关联注入

  • 发现多个系统共用同一数据库
  • 表名特征分析:a_前缀格式(如a_log, a_money)
  • 关键API发现:
    • 查找允许直接查询表内容的API
    • 参数示例:
      {
        "item": "列名",
        "tablename": "表名",
        "condition": "条件",
        "orderitem": "排序"
      }
      
  • 目标:通过注入获取用户表(a_user, a_account等)

3. 横向移动与权限提升

3.1 靶标系统发现

  • 通过端口扫描发现目标系统
  • 分析登录接口加密机制:
    • 第一阶段:AES加密
    • 第二阶段:RSA加密(带$前缀)

3.2 凭证获取

  • 通过SQL注入获取管理员账号
  • 利用表查询API直接获取用户凭证
  • 多系统共享凭证可能性分析

4. RCE漏洞利用

4.1 第三方系统发现

  • 从背景流量中发现隐藏系统
  • 获取并复用认证token

4.2 GeoServer漏洞利用

  • 发现系统使用GeoServer组件
  • 控制台信息收集
  • 路径猜测与漏洞利用:
    1. 常见路径尝试
    2. 已知漏洞利用
    3. 获取WebShell

5. 防御建议

5.1 防止SQL注入

  • 使用参数化查询
  • 最小权限原则
  • 输入验证与过滤
  • 禁用直接表查询API

5.2 加密安全

  • 避免前端加密作为安全措施
  • 使用HTTPS保护传输层
  • 定期更换加密密钥

5.3 系统隔离

  • 不同系统使用独立数据库
  • 网络隔离关键系统
  • 最小化系统间信任关系

5.4 组件安全

  • 及时更新第三方组件
  • 禁用不必要的功能
  • 严格访问控制管理界面

6. 工具与资源

  • mitmproxy:中间人代理工具
  • SQLMap:自动化SQL注入工具
  • Wireshark:流量分析工具
  • Burp Suite:Web漏洞测试套件
  • mitmproxySecurityScripts:加密处理脚本集合
通过SQL注入和RCE攻防演练实战教学 1. 加密请求分析与处理 1.1 识别加密机制 系统使用加密请求,需要先分析加解密逻辑 通过断点调试定位加解密函数位置 常见加密类型:AES、RSA等对称/非对称加密 1.2 使用mitmproxy处理加密 推荐工具:mitmproxy中间人代理 可使用现成脚本处理加解密: mitmproxySecurityScripts 处理流程: 拦截加密请求 解密请求内容 修改请求参数 重新加密发送 2. SQL注入攻击实战 2.1 初步注入测试 手注确认存在SQL注入漏洞 通过 USER 命令判断数据库类型(本例为MSSQL) 2.2 SQLMap高级使用 指定数据库类型: --dbms=mssql 使用特定技术: --technique=B (盲注) 处理JSON干扰:可能需要自定义tamper脚本 常见问题: 误判:需手动验证注入点 盲注速度慢:需要耐心或寻找其他注入点 2.3 多系统关联注入 发现多个系统共用同一数据库 表名特征分析: a_ 前缀格式(如a_ log, a_ money) 关键API发现: 查找允许直接查询表内容的API 参数示例: 目标:通过注入获取用户表(a_ user, a_ account等) 3. 横向移动与权限提升 3.1 靶标系统发现 通过端口扫描发现目标系统 分析登录接口加密机制: 第一阶段:AES加密 第二阶段:RSA加密(带 $ 前缀) 3.2 凭证获取 通过SQL注入获取管理员账号 利用表查询API直接获取用户凭证 多系统共享凭证可能性分析 4. RCE漏洞利用 4.1 第三方系统发现 从背景流量中发现隐藏系统 获取并复用认证token 4.2 GeoServer漏洞利用 发现系统使用GeoServer组件 控制台信息收集 路径猜测与漏洞利用: 常见路径尝试 已知漏洞利用 获取WebShell 5. 防御建议 5.1 防止SQL注入 使用参数化查询 最小权限原则 输入验证与过滤 禁用直接表查询API 5.2 加密安全 避免前端加密作为安全措施 使用HTTPS保护传输层 定期更换加密密钥 5.3 系统隔离 不同系统使用独立数据库 网络隔离关键系统 最小化系统间信任关系 5.4 组件安全 及时更新第三方组件 禁用不必要的功能 严格访问控制管理界面 6. 工具与资源 mitmproxy:中间人代理工具 SQLMap:自动化SQL注入工具 Wireshark:流量分析工具 Burp Suite:Web漏洞测试套件 mitmproxySecurityScripts :加密处理脚本集合