记一次攻防演练通过SQL注入和RCE拿下靶标的故事
字数 1094 2025-09-04 23:22:12
通过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
- 参数示例:
{ "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组件
- 控制台信息收集
- 路径猜测与漏洞利用:
- 常见路径尝试
- 已知漏洞利用
- 获取WebShell
5. 防御建议
5.1 防止SQL注入
- 使用参数化查询
- 最小权限原则
- 输入验证与过滤
- 禁用直接表查询API
5.2 加密安全
- 避免前端加密作为安全措施
- 使用HTTPS保护传输层
- 定期更换加密密钥
5.3 系统隔离
- 不同系统使用独立数据库
- 网络隔离关键系统
- 最小化系统间信任关系
5.4 组件安全
- 及时更新第三方组件
- 禁用不必要的功能
- 严格访问控制管理界面
6. 工具与资源
- mitmproxy:中间人代理工具
- SQLMap:自动化SQL注入工具
- Wireshark:流量分析工具
- Burp Suite:Web漏洞测试套件
- mitmproxySecurityScripts:加密处理脚本集合