记一次任意文件下载(尝试Getshell未果)
字数 1264 2025-08-06 18:08:14

任意文件下载漏洞利用与Getshell尝试分析

漏洞背景

本文记录了一次通过任意文件下载漏洞尝试Getshell的过程,虽然最终未能成功获取shell,但展示了完整的渗透测试思路和方法。

目标系统

目标系统是一个招聘网站,基于ASP.NET MVC架构。

渗透测试过程

1. 初始信息收集

  • 尝试注册账户但放弃,选择其他测试方式
  • 系统存在文件上传功能

2. 文件上传测试

  1. 尝试直接上传恶意文件
  2. 开启抓包工具拦截上传请求
  3. 修改上传参数尝试绕过限制
  4. 上传测试失败,思路暂时中断

3. 发现任意文件下载漏洞

  1. 测试发现系统存在任意文件下载漏洞
  2. 经过测试,使用../../../三层目录穿越可成功下载Web.config文件
    • Web.config是ASP.NET应用程序的配置文件,包含敏感信息

4. Getshell尝试

  1. 第一次尝试

    • 通过任意文件下载漏洞尝试直接上传webshell
    • 上传测试失败
  2. 第二次尝试

    • 下载系统源码进行分析
    • 从网络下载MVC源码对比目录结构
    • 尝试下载System.Web.Mvc.dll文件
    • 通过对比找到真正的业务代码目录
  3. 第三次尝试 - 图片抓取上传

    • 发现系统不能抓取外部图片
    • 测试是否可以抓取服务器本地图片
    • 确认可以抓取服务器上的JPG图片
    • 尝试抓取aspx文件,部分成功
    • 改为尝试抓取asmx文件(ASP.NET Web服务文件)
    • 使用Tas9er的ByPassGodzilla工具(GitHub项目)
    • 制作图片马:copy 1.jpg/b + 2.asmx 3.jpg
    • 利用头像上传功能上传图片马
    • 通过UEditor编辑器抓取图片功能尝试Getshell

5. 失败原因分析

  • 目录权限限制导致上传的webshell无法执行
  • 系统仅允许解析HTML等安全文件类型
  • aspx/asmx文件虽然可以上传但无法执行

技术要点总结

  1. 任意文件下载漏洞利用

    • 使用../../../进行目录穿越
    • 优先下载Web.config获取配置信息
    • 下载DLL文件分析系统架构
  2. 图片抓取上传技巧

    • 测试服务器本地图片抓取功能
    • 尝试不同扩展名(aspx, asmx)
    • 使用图片马技术绕过上传限制
  3. Bypass技术

    • 使用copy命令制作图片马:copy 1.jpg/b + 2.asmx 3.jpg
    • 利用UEditor等编辑器的抓取功能

防御建议

  1. 修复任意文件下载漏洞:

    • 限制文件下载路径
    • 对用户输入进行严格过滤
  2. 加强上传功能安全:

    • 检查文件内容而不仅是扩展名
    • 限制图片抓取功能只能访问外部URL
  3. 服务器配置:

    • 设置严格的目录权限
    • 禁止执行上传目录中的脚本文件
  4. 其他:

    • 定期更新框架和组件
    • 实施WAF防护

工具与资源

  • ByPassGodzilla工具:https://github.com/Tas9er/ByPassGodzilla
  • 图片马制作技术
  • UEditor编辑器漏洞利用

虽然本次渗透测试未能最终获取shell,但展示了完整的渗透思路和多种技术手法的组合应用,对防御方和攻击方都有参考价值。

任意文件下载漏洞利用与Getshell尝试分析 漏洞背景 本文记录了一次通过任意文件下载漏洞尝试Getshell的过程,虽然最终未能成功获取shell,但展示了完整的渗透测试思路和方法。 目标系统 目标系统是一个招聘网站,基于ASP.NET MVC架构。 渗透测试过程 1. 初始信息收集 尝试注册账户但放弃,选择其他测试方式 系统存在文件上传功能 2. 文件上传测试 尝试直接上传恶意文件 开启抓包工具拦截上传请求 修改上传参数尝试绕过限制 上传测试失败,思路暂时中断 3. 发现任意文件下载漏洞 测试发现系统存在任意文件下载漏洞 经过测试,使用 ../../../ 三层目录穿越可成功下载Web.config文件 Web.config是ASP.NET应用程序的配置文件,包含敏感信息 4. Getshell尝试 第一次尝试 : 通过任意文件下载漏洞尝试直接上传webshell 上传测试失败 第二次尝试 : 下载系统源码进行分析 从网络下载MVC源码对比目录结构 尝试下载 System.Web.Mvc.dll 文件 通过对比找到真正的业务代码目录 第三次尝试 - 图片抓取上传 : 发现系统不能抓取外部图片 测试是否可以抓取服务器本地图片 确认可以抓取服务器上的JPG图片 尝试抓取aspx文件,部分成功 改为尝试抓取asmx文件(ASP.NET Web服务文件) 使用Tas9er的ByPassGodzilla工具(GitHub项目) 制作图片马: copy 1.jpg/b + 2.asmx 3.jpg 利用头像上传功能上传图片马 通过UEditor编辑器抓取图片功能尝试Getshell 5. 失败原因分析 目录权限限制导致上传的webshell无法执行 系统仅允许解析HTML等安全文件类型 aspx/asmx文件虽然可以上传但无法执行 技术要点总结 任意文件下载漏洞利用 : 使用 ../../../ 进行目录穿越 优先下载Web.config获取配置信息 下载DLL文件分析系统架构 图片抓取上传技巧 : 测试服务器本地图片抓取功能 尝试不同扩展名(aspx, asmx) 使用图片马技术绕过上传限制 Bypass技术 : 使用copy命令制作图片马: copy 1.jpg/b + 2.asmx 3.jpg 利用UEditor等编辑器的抓取功能 防御建议 修复任意文件下载漏洞: 限制文件下载路径 对用户输入进行严格过滤 加强上传功能安全: 检查文件内容而不仅是扩展名 限制图片抓取功能只能访问外部URL 服务器配置: 设置严格的目录权限 禁止执行上传目录中的脚本文件 其他: 定期更新框架和组件 实施WAF防护 工具与资源 ByPassGodzilla工具:https://github.com/Tas9er/ByPassGodzilla 图片马制作技术 UEditor编辑器漏洞利用 虽然本次渗透测试未能最终获取shell,但展示了完整的渗透思路和多种技术手法的组合应用,对防御方和攻击方都有参考价值。