宝塔面板+PHPStudy双环境配置:手把手搭建DVWA/Pikachu靶场(附常见报错解决方案)

宝塔Linux一键部署:DVWA、Pikachu等五大Web安全靶场实战指南 本文提供了一份详细的实战指南,教你如何使用宝塔面板在Linux服务器上一键部署DVWA、Pikachu、XSS、SQLi-Labs和Upload-Labs五大主流Web安全靶场。教程涵盖环境准备、宝塔面板安装、靶场配置及核心功能解析,帮助安全初学者快速搭建可控的漏洞练习环境,高效学习SQL注入、XSS等核心Web安全技术。 阅读详情

双环境靶场部署实战:跨越Linux与Windows的渗透测试协作平台

在真实的渗透测试与安全研究工作中,我们常常面临一个尴尬的境地:生产环境通常是Linux服务器,而开发调试却习惯在Windows桌面进行。这种割裂导致很多安全工程师在本地搭建的靶场环境与线上实际环境存在差异,测试结果往往缺乏说服力。更不用说当团队协作时,不同成员使用不同操作系统,环境配置的差异会直接影响到漏洞复现的一致性和效率。

今天,我们就来彻底解决这个问题。我将分享一套经过实战检验的双环境靶场部署方案,让你能够在Linux生产环境和Windows开发环境中无缝切换,确保DVWA、Pikachu等主流靶场的部署一致性。这套方案不仅解决了跨平台部署时的数据库连接、PHP版本兼容性等核心痛点,还提供了靶场初始化失败的10种系统化排查方法。无论你是独立研究者,还是需要多环境协作的渗透测试团队,这套方案都能显著提升你的工作效率。

1. 环境规划与架构设计:为何需要双环境?

在深入技术细节之前,我们首先要理解双环境部署的价值所在。很多安全工程师可能会问:为什么不能只用一种环境?答案在于真实性与效率的平衡。

Linux环境代表了大多数Web应用的实际生产部署环境。在Linux上搭建靶场,你能接触到真实的文件权限管理、服务配置方式、安全策略设置。例如,Linux下的Apache/Nginx配置、PHP-FPM进程管理、MySQL权限控制等,都与Windows有本质区别。如果你只在Windows上测试,可能会错过一些只在Linux环境下才会暴露的安全问题。

Windows环境则是大多数安全工程师的日常工作平台。Windows下的图形化工具更丰富,调试更方便,特别是使用PHPStudy这样的集成环境,可以快速搭建、重置测试环境,适合快速验证漏洞原理和开发攻击脚本。

注意:双环境部署不是简单的重复劳动,而是建立一套标准化的配置流程,确保两个环境的核心配置(如PHP版本、MySQL设置、安全配置)保持一致,从而保证测试结果的可比性。

1.1 环境组件选型与版本对齐

要实现真正的环境一致性,首先要在组件选型上做好规划。以下是经过验证的推荐组合:

环境组件Linux环境推荐Windows环境推荐一致性要点
Web服务器Nginx 1.18+ 或 Apache 2.4+Apache 2.4 (PHPStudy集成)保持AllowOverride All配置一致
PHP版本PHP 7.4.xPHP 7.4.x版本必须完全一致,扩展模块需对应
数据库MySQL 5.7+ 或 MariaDB 10.3+MySQL 5.7 (PHPStudy集成)字符集统一为utf8mb4,排序规则utf8mb4_general_ci
管理面板宝塔面板 7.9+PHPStudy 2018+通过面板确保配置可视化与可追溯
PHP关键扩展mysqli, gd, mbstring, opensslmysqli, gd, mbstring, openssl扩展列表和参数配置需完全一致

这里特别强调PHP版本的一致性。很多靶场(特别是老版本的DVWA)对PHP版本非常敏感。PHP 7.4是一个比较平衡的选择,既支持大多数现代框架,又能兼容传统靶场。如果你使用PHP 8.x,可能会遇到一些兼容性问题,需要额外调整。

1.2 目录结构与权限规划

跨平台部署时,目录结构和文件权限是最容易出问题的地方。我建议采用以下标准化结构:

/靶场根目录/
├── dvwa/                    # DVWA靶场
│   ├── config.inc.php       # 数据库配置文件
│   ├── hackable/            # 可攻击目录
│   └── external/            # 第三方资源
├── pikachu/                 # Pikachu靶场
│   ├── inc/config.inc.php   # 主配置文件
│   └── pkxss/inc/config.inc.php  # XSS后台配置
├── xss-labs/                # 专项XSS靶场
├── upload-labs/             # 文件上传靶场
└── sqli-labs/               # SQL注入靶场

在Linux环境下,需要特别注意权限设置:

# 设置正确的目录权限(在宝塔面板中也可图形化操作)
chown -R www:www /www/wwwroot/靶场目录/
find /www/wwwroot/靶场目录/ -type d -exec chmod 755 {} \;
find /www/wwwroot/靶场目录/ -type f -exec chmod 644 {} \;

# 特别设置可写目录(如上传目录)
chmod 777 /www/wwwroot/靶场目录/dvwa/hackable/uploads/
chmod 777 /www/wwwroot/靶场目录/pikachu/inc/  # Pikachu需要写配置文件

在Windows环境下,虽然权限问题不那么严格,但也要确保IIS或Apache的运行用户(通常是NETWORK SERVICE或IUSR)有相应的读写权限。

2. Linux环境部署:宝塔面板的高效配置

宝塔面板极大地简化了Linux服务器的管理,但对于靶场部署,我们需要的不仅仅是"能运行",而是"正确且安全地运行"。下面是我总结的宝塔面板部署靶场的最佳实践。

2.1 宝塔环境初始化与安全加固

安装宝塔面板后,第一件事不是急着部署网站,而是进行基础安全加固:

# 修改宝塔默认端口(非必须但建议)
echo "port: 8888" >> /www/server/panel/data/port.pl
# 重启面板服务
bt restart

# 修改MySQL root密码为强密码(在宝塔面板中操作更安全)
# 宝塔面板 -> 数据库 -> root密码修改

在软件商店中安装环境时,我推荐选择LNMP架构而非LAMP,原因在于Nginx在处理静态资源和反向代理时性能更好,而且配置更灵活。版本选择如下:

  • Nginx 1.20+
  • MySQL 5.7+
  • PHP 7.4(编译安装,非极速安装)

编译安装PHP时,务必勾选以下关键扩展:

  • mysqli - MySQL数据库连接
  • gd - 图形处理,某些靶场需要
  • mbstring - 多字节字符串支持
  • openssl - 加密支持
  • fileinfo - 文件信息检测

2.2 站点创建与PHP特殊配置

创建站点时,有几个关键点需要注意:

  1. 域名绑定:即使只在本地测试,也建议绑定一个测试域名(如test.local),在本地hosts文件中解析到127.0.0.1。这能避免很多基于域名的安全检测问题。

  2. PHP版本选择:创建站点后,立即在"网站设置"中指定PHP版本为7.4,并点击"应用"。

  3. 关键PHP配置修改:

    进入PHP设置 -> 配置文件,找到并修改以下参数:

    ; 允许URL包含(DVWA等靶场需要)
    allow_url_include = On
    
    ; 错误显示(开发环境建议开启)
    display_errors = On
    error_reporting = E_ALL
    
    ; 文件上传相关
    file_uploads = On
    upload_max_filesize = 50M
    post_max_size = 50M
    
    ; 会话安全(可选调整)
    session.cookie_httponly = 1
    session.use_strict_mode = 1
    

    重要提示:allow_url_include是一个有安全风险的设置,仅在测试环境中开启。在实际生产环境中必须保持为Off。

  4. 禁用危险函数:在PHP配置中找到disable_functions,添加以下函数:

    disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec
    

    但注意:某些靶场(如DVWA的命令注入关卡)需要这些函数来演示漏洞,你可以根据测试需要选择性禁用。

2.3 靶场部署与数据库配置

以DVWA为例,演示完整的部署流程:

  1. 上传与解压:将DVWA源码包上传到网站根目录并解压。注意检查解压后的目录结构,确保直接通过http://域名/dvwa就能访问,而不是http://域名/某个文件夹/dvwa。

  2. 配置文件准备:

    # 进入DVWA配置目录
    cd /www/wwwroot/你的网站/dvwa/config/
    
    # 复制配置文件模板
    cp config.inc.php.dist config.inc.php
    
    # 编辑配置文件
    nano config.inc.php
    
  3. 数据库连接配置:修改config.inc.php中的以下关键参数:

    $_DVWA = array();
    $_DVWA[ 'db_server' ]   = '127.0.0.1';  // 使用127.0.0.1而非localhost
    $_DVWA[ 'db_database' ] = 'dvwa';
    $_DVWA[ 'db_user' ]     = 'dvwa_user';   // 不要使用root账户
    $_DVWA[ 'db_password' ] = '强密码';
    $_DVWA[ 'db_port' ]     = '3306';
    
    // 如果使用MySQL 8.0+,需要设置默认认证插件
    // $_DVWA[ 'db_password' ] = '强密码';
    // 并在MySQL中执行:ALTER USER 'dvwa_user'@'localhost' IDENTIFIED WITH mysql_native_password BY '强密码';
    
  4. 创建数据库用户:在宝塔面板的数据库管理中:

    • 创建新数据库dvwa
    • 创建新用户dvwa_user,授权给dvwa数据库
    • 权限选择:全选所有权限
  5. 文件权限修复:DVWA需要写权限来创建数据库和存储会话:

    chmod 777 /www/wwwroot/你的网站/dvwa/hackable/uploads/
    chmod 777 /www/wwwroot/你的网站/dvwa/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
    chmod 777 /www/wwwroot/你的网站/dvwa/config/
    
  6. 访问初始化:打开浏览器访问http://你的域名/dvwa/setup.php,点击"Create / Reset Database"按钮。如果一切正常,你会看到数据库创建成功的提示。

2.4 Pikachu靶场的特殊配置

Pikachu靶场比DVWA更复杂,它包含了多个子模块,每个模块可能需要独立的配置:

  1. 主配置文件:/pikachu/inc/config.inc.php

    $dbuser = 'pikachu_user';
    $dbpass = '强密码';
    $dbname = 'pikachu';
    $host = '127.0.0.1';
    $dbport = '3306';
    
  2. XSS后台配置:Pikachu自带一个XSS攻击后台,需要单独配置:

    // 文件位置:/pikachu/pkxss/inc/config.inc.php
    define('DB_HOST', '127.0.0.1');
    define('DB_USER', 'pikachu_user');
    define('DB_PASS', '强密码');
    define('DB_NAME', 'pikachu');
    
  3. 初始化技巧:访问http://你的域名/pikachu/install.php进行初始化。如果遇到问题,可以手动导入SQL文件:

    mysql -u pikachu_user -p pikachu < /www/wwwroot/你的网站/pikachu/pikachu.sql
    

3. Windows环境部署:PHPStudy的精细化配置

Windows环境下的部署看似简单,但要做到与Linux环境完全一致,需要注意很多细节。PHPStudy虽然提供了"一键安装"的便利,但默认配置往往不适合安全测试。

3.1 PHPStudy版本选择与安装

我推荐使用PHPStudy 2018版本而不是最新版,原因如下:

  • 2018版本更稳定,兼容性更好
  • 自带PHP 7.4.3版本,与我们的Linux环境保持一致
  • 支持Apache和Nginx切换,方便测试不同服务器环境

安装时注意:

  1. 安装路径不要包含中文或空格,建议使用D:\phpstudy_pro
  2. 安装完成后,以管理员身份运行PHPStudy
  3. 在"设置"中勾选"开机自启动"和"以服务方式启动"

3.2 环境配置与Linux对齐

启动PHPStudy后,切换到PHP 7.4.3版本和Apache服务器。然后进行以下关键配置:

  1. Apache虚拟主机配置:

    打开D:\phpstudy_pro\Extensions\Apache2.4.39\conf\vhosts.conf,添加:

    <VirtualHost *:80>
        DocumentRoot "D:\phpstudy_pro\WWW\dvwa"
        ServerName dvwa.test
        ServerAlias www.dvwa.test
        <Directory "D:\phpstudy_pro\WWW\dvwa">
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
    <VirtualHost *:80>
        DocumentRoot "D:\phpstudy_pro\WWW\pikachu"
        ServerName pikachu.test
        ServerAlias www.pikachu.test
        <Directory "D:\phpstudy_pro\WWW\pikachu">
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
    
  2. 修改Windows hosts文件(C:\Windows\System32\drivers\etc\hosts):

    127.0.0.1 dvwa.test
    127.0.0.1 pikachu.test
    127.0.0.1 xss.test
    
  3. PHP配置同步:

    打开PHPStudy的"PHP扩展"菜单,确保以下扩展已开启:

    • mysqli
    • gd2
    • mbstring
    • openssl

    然后编辑php.ini,确保以下参数与Linux环境一致:

    allow_url_include = On
    display_errors = On
    error_reporting = E_ALL
    upload_max_filesize = 50M
    post_max_size = 50M
    

3.3 MySQL配置与跨平台一致性

PHPStudy自带的MySQL默认配置与Linux环境可能有差异,需要手动调整:

  1. 字符集统一:编辑my.ini(在PHPStudy的MySQL设置中可找到),确保有以下配置:

    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_general_ci
    
    [client]
    default-character-set=utf8mb4
    
    [mysql]
    default-character-set=utf8mb4
    
  2. 创建专用数据库用户(与Linux环境保持一致):

    打开MySQL命令行或使用phpMyAdmin:

    -- 创建DVWA数据库和用户
    CREATE DATABASE IF NOT EXISTS dvwa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    CREATE USER 'dvwa_user'@'localhost' IDENTIFIED BY '与Linux相同的密码';
    GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa_user'@'localhost';
    FLUSH PRIVILEGES;
    
    -- 创建Pikachu数据库和用户
    CREATE DATABASE IF NOT EXISTS pikachu CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    CREATE USER 'pikachu_user'@'localhost' IDENTIFIED BY '与Linux相同的密码';
    GRANT ALL PRIVILEGES ON pikachu.* TO 'pikachu_user'@'localhost';
    FLUSH PRIVILEGES;
    
  3. 验证连接:在Windows命令行中测试连接:

    mysql -u dvwa_user -p -h 127.0.0.1 dvwa
    

    输入密码后,如果成功进入MySQL提示符,说明配置正确。

3.4 靶场部署与快速验证

Windows环境下的靶场部署流程与Linux类似,但有几个便利之处:

  1. 直接文件操作:无需使用FTP或命令行,直接解压文件到D:\phpstudy_pro\WWW\目录下。

  2. 配置文件编辑:使用Notepad++或VS Code编辑配置文件,比Linux下的vim更友好。

  3. 快速重置:PHPStudy提供了环境重置功能,当测试环境被"玩坏"时,可以快速恢复。

部署完成后,访问http://dvwa.test和http://pikachu.test,应该能看到与Linux环境完全一致的界面。

4. 跨平台协同与常见问题深度排查

双环境部署完成后,真正的挑战在于如何确保两个环境的行为一致,以及当出现问题时如何快速定位。以下是10种常见问题的系统化排查方法。

4.1 数据库连接问题排查

症状:访问靶场时提示"无法连接数据库"、"Access denied for user"等错误。

排查步骤:

  1. 检查MySQL服务状态:

    # Linux
    systemctl status mysqld
    # 或
    ps aux | grep mysql
    
    # Windows
    # 在PHPStudy中查看MySQL服务状态
    
  2. 验证网络连接:

    # 测试MySQL端口是否开放
    telnet 127.0.0.1 3306
    
    # 如果telnet不可用,使用netcat
    nc -zv 127.0.0.1 3306
    
  3. 检查用户权限:

    -- 在MySQL中执行
    SELECT user, host FROM mysql.user;
    SHOW GRANTS FOR 'dvwa_user'@'localhost';
    
    -- 特别注意:MySQL 8.0+的认证插件问题
    SELECT user, host, plugin FROM mysql.user WHERE user = 'dvwa_user';
    -- 如果plugin是caching_sha2_password,需要修改:
    ALTER USER 'dvwa_user'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
    
  4. 配置文件检查:确保配置文件中使用的是127.0.0.1而不是localhost。在Linux下,localhost可能通过Unix socket连接,而Windows下总是TCP连接,这种差异会导致连接失败。

4.2 PHP版本与扩展问题

症状:页面显示空白、功能异常、特定漏洞无法复现。

排查步骤:

  1. 验证PHP版本:

    <?php
    phpinfo();
    ?>
    

    将这段代码保存为info.php,在浏览器中访问,查看PHP版本和加载的扩展。

  2. 检查关键扩展:确保以下扩展已加载:

    • mysqli
    • gd
    • mbstring
    • openssl

    在phpinfo()的输出中搜索这些扩展名。

  3. PHP错误日志:

    # Linux错误日志位置
    tail -f /www/server/php/74/var/log/php-fpm.log
    
    # Windows错误日志位置
    # 查看D:\phpstudy_pro\Extensions\php_logs\php_errors.log
    
  4. 参数差异对比:使用以下脚本对比两个环境的PHP配置:

    <?php
    $important_settings = [
        'allow_url_include',
        'allow_url_fopen',
        'display_errors',
        'error_reporting',
        'upload_max_filesize',
        'post_max_size',
        'max_execution_time',
        'memory_limit'
    ];
    
    foreach ($important_settings as $setting) {
        echo "$setting: " . ini_get($setting) . "\n";
    }
    ?>
    

    在两个环境中运行此脚本,确保输出一致。

4.3 文件权限与路径问题

症状:无法上传文件、无法写配置文件、图片无法显示。

排查步骤:

  1. Linux权限检查:

    # 检查文件和目录权限
    ls -la /www/wwwroot/你的网站/
    
    # 检查运行用户
    ps aux | grep php-fpm
    # 查看php-fpm进程的运行用户(通常是www)
    
    # 修正权限
    chown -R www:www /www/wwwroot/你的网站/
    find /www/wwwroot/你的网站/ -type d -exec chmod 755 {} \;
    find /www/wwwroot/你的网站/ -type f -exec chmod 644 {} \;
    
    # 特殊目录需要写权限
    chmod 777 /www/wwwroot/你的网站/dvwa/hackable/uploads/
    
  2. Windows权限检查:虽然Windows权限不那么严格,但仍需确保:

    • IIS或Apache的运行账户有目录读写权限
    • 如果使用IIS,需要给IUSR和IIS_IUSRS用户组赋予权限
  3. 路径问题:某些靶场使用相对路径,在Windows和Linux下表现不同:

    // 错误的相对路径用法
    require_once '../config.php';
    
    // 推荐使用绝对路径
    require_once __DIR__ . '/../config.php';
    

    如果靶场代码有问题,可能需要手动修改路径引用。

4.4 会话与Cookie问题

症状:无法保持登录状态、频繁退出、多标签页操作异常。

排查步骤:

  1. 会话目录权限:

    # 检查PHP会话保存目录
    php -i | grep session.save_path
    
    # 确保会话目录可写
    ls -la /var/lib/php/session/  # Linux默认位置
    # 或
    ls -la /tmp/  # 某些配置可能使用/tmp
    
  2. 跨域Cookie问题:如果使用域名访问,确保:

    • 所有测试使用相同的域名(如dvwa.test)
    • 避免混用localhost和127.0.0.1,这会被浏览器视为不同域
    • 在Windows hosts文件中正确配置域名解析
  3. 会话配置检查:在php.ini中确保:

    session.cookie_httponly = 1
    session.use_strict_mode = 1
    session.cookie_samesite = Lax  # 或 Strict
    

    这些安全设置可能会影响某些靶场的正常功能,测试时可以暂时关闭。

4.5 特定靶场的特殊问题

DVWA常见问题:

  1. reCAPTCHA密钥错误:DVWA默认使用Google reCAPTCHA,需要申请自己的密钥或禁用:

    // 在config.inc.php中
    $_DVWA[ 'recaptcha_public_key' ]  = '';
    $_DVWA[ 'recaptcha_private_key' ] = '';
    $_DVWA[ 'recaptcha_enabled' ] = false;  // 禁用验证码
    
  2. PHP 7.4+兼容性问题:DVWA某些代码在PHP 7.4+中会报错:

    // 错误:Trying to access array offset on value of type null
    // 解决方法:在报错文件开头添加
    error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
    

Pikachu常见问题:

  1. XSS后台无法使用:确保pkxss目录下的配置文件正确,并且数据库用户有足够的权限。

  2. 文件上传漏洞无法复现:检查php.ini中的上传限制:

    file_uploads = On
    upload_max_filesize = 50M
    post_max_size = 50M
    max_file_uploads = 20
    

4.6 网络与防火墙问题

症状:Windows能访问但Linux不能,或反之。

排查步骤:

  1. 防火墙检查:

    # Linux防火墙
    firewall-cmd --list-all  # CentOS 7+
    ufw status  # Ubuntu
    
    # 开放80端口
    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --reload
    
  2. SELinux检查(仅Linux):

    # 查看SELinux状态
    getenforce
    
    # 如果是Enforcing模式,可能需要调整
    setenforce 0  # 临时关闭(测试用)
    # 或
    chcon -R -t httpd_sys_content_t /www/wwwroot/你的网站/
    
  3. Windows防火墙:确保Windows防火墙允许Apache或Nginx入站连接。

4.7 性能与资源限制

症状:页面加载慢、上传大文件失败、长时间操作超时。

排查步骤:

  1. PHP资源限制:

    max_execution_time = 300
    max_input_time = 300
    memory_limit = 256M
    
  2. MySQL连接限制:

    -- 查看当前连接数
    SHOW STATUS LIKE 'Threads_connected';
    
    -- 查看最大连接数
    SHOW VARIABLES LIKE 'max_connections';
    
    -- 修改最大连接数(在my.cnf/my.ini中)
    max_connections = 200
    
  3. Web服务器限制:Apache的MaxClients或Nginx的worker_connections可能需要调整。

4.8 编码与字符集问题

症状:中文乱码、特殊字符处理异常、数据库存储乱码。

排查步骤:

  1. 统一字符集:确保所有环节使用utf8mb4:

    • 数据库创建时指定字符集
    • 表创建时指定字符集
    • PHP连接数据库后执行SET NAMES utf8mb4
    • HTML页面添加<meta charset="UTF-8">
  2. 文件编码检查:确保PHP文件本身是UTF-8 without BOM编码:

    # Linux检查文件编码
    file -i config.inc.php
    # 输出应该是:config.inc.php: text/x-php; charset=utf-8
    
  3. 转换工具:如果文件编码不一致,使用iconv转换:

    iconv -f GBK -t UTF-8 old_file.php > new_file.php
    

4.9 备份与恢复策略

双环境部署的一个优势是可以相互备份。建立定期备份机制:

  1. 数据库备份脚本:

    # Linux备份脚本
    #!/bin/bash
    BACKUP_DIR="/backup/mysql"
    DATE=$(date +%Y%m%d_%H%M%S)
    
    mysqldump -u dvwa_user -p密码 dvwa > $BACKUP_DIR/dvwa_$DATE.sql
    mysqldump -u pikachu_user -p密码 pikachu > $BACKUP_DIR/pikachu_$DATE.sql
    
    # 保留最近7天备份
    find $BACKUP_DIR -name "*.sql" -mtime +7 -delete
    
  2. 文件同步:可以使用rsync或scp在环境间同步配置文件:

    # 从Linux同步到Windows(需要Windows安装OpenSSH)
    scp -r user@linux_server:/www/wwwroot/靶场/config.inc.php D:\phpstudy_pro\WWW\靶场\
    

4.10 自动化部署脚本

对于团队协作,可以编写自动化部署脚本:

#!/bin/bash
# 靶场自动化部署脚本
# 适用于Linux环境,Windows可编写对应的bat脚本

set -e  # 遇到错误退出

echo "开始部署靶场环境..."

# 1. 安装必要软件
if [ -f /etc/redhat-release ]; then
    yum install -y wget unzip
elif [ -f /etc/debian_version ]; then
    apt update && apt install -y wget unzip
fi

# 2. 下载靶场源码
TARGET_DIR="/www/wwwroot/targets"
mkdir -p $TARGET_DIR
cd $TARGET_DIR

echo "下载DVWA..."
wget -O dvwa.zip https://github.com/digininja/DVWA/archive/master.zip
unzip dvwa.zip
mv DVWA-master dvwa

echo "下载Pikachu..."
wget -O pikachu.zip https://github.com/zhuifengshaonianhanlu/pikachu/archive/master.zip
unzip pikachu.zip
mv pikachu-master pikachu

# 3. 配置文件模板
cat > $TARGET_DIR/dvwa/config/config.inc.php << 'EOF'
<?php
$_DVWA = array();
$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'dvwa_user';
$_DVWA[ 'db_password' ] = '${DB_PASSWORD}';
$_DVWA[ 'recaptcha_public_key' ] = '';
$_DVWA[ 'recaptcha_private_key' ] = '';
?>
EOF

# 4. 设置权限
chown -R www:www $TARGET_DIR
find $TARGET_DIR -type d -exec chmod 755 {} \;
find $TARGET_DIR -type f -exec chmod 644 {} \;

echo "部署完成!请手动配置数据库密码。"

这套双环境部署方案经过多个实际项目的验证,能够显著提升渗透测试团队的工作效率。关键在于保持两个环境的核心配置一致,并建立系统化的排查流程。当你在Windows上快速验证某个漏洞后,可以立即在Linux环境中复现,确保测试结果的可靠性。

在实际使用中,我建议团队内部建立配置文档,记录所有自定义设置和遇到的特殊问题。这样新成员加入时,可以快速搭建一致的环境,避免重复踩坑。记住,好的工具环境是高效安全测试的基础,值得投入时间进行精心配置和维护。

宝塔Linux实战:一键部署DVWA与Pikachu双靶场环境 本文详细介绍了如何使用宝塔面板在Linux服务器上快速部署DVWA和Pikachu两大Web渗透测试靶场。通过图形化界面简化了PHP、MySQL等环境的配置,并重点讲解了XSS等漏洞模块的配置与实战差异,帮助网络安全新手在10分钟内搭建好学习环境,将精力专注于漏洞原理与实践。 阅读详情

相关推荐

Windows系统下Pikachu靶场与DVWA双环境一键搭建指南

本文提供了一份详细的Windows系统下Pikachu与DVWA双靶场一键搭建指南。通过使用phpstudy集成环境,快速部署Apache服务器与MySQL数据库,解决了端口冲突与数据库配置等常见问题。该环境结合了Pikachu的系统性教学与DVWA的难度分级挑战,是Web安全初学者构建本地渗透测试学习环境的理想方案。

weixin_29271053的博客 289

PHPStudy+DVWA环境搭建避坑指南:从安装到文件包含漏洞复现全流程

本文详细介绍了在Windows系统下使用PHPStudy集成环境搭建DVWA漏洞靶场的完整流程与避坑指南。重点解析了文件包含漏洞的原理,并提供了从Low到High安全等级的漏洞复现与绕过实战方法,帮助网络安全学习者深入理解漏洞成因与防御策略。

time3的博客 155

DVWA与Pikachu双靶场协同部署:宝塔+PHPStudy双环境实战指南

Web漏洞教学靶场如DVWA和Pikachu并非普通PHP应用,而是深度耦合特定运行时约束的实验系统。其核心依赖PHP版本兼容性、MySQL严格模式开关、时区配置及扩展模块加载状态——例如DVWA强依赖已废弃的mysql_*函数,仅能在PHP 5.6–7.4下稳定运行;而Pikachu则需PHP 7.2+以支持PRC时区标识,并要求MySQL 5.7关闭strict mode以避免create_time字段报错。单环境强行统一配置极易引发mysqli_connect拒绝访问、SQL导入失败、函数未定义等连锁

weixin_33978578的博客 295

别再只装DVWA了!用PHPStudy一键部署Web安全全家桶(含DVWA/SQLi-Labs/Upload-Labs)

本文介绍如何使用PHPStudy一键部署包含DVWA、SQLi-Labs和Upload-Labs的Web安全靶场全家桶,实现从单一漏洞练习到全景实战的跨越。通过多靶场集成环境,全面覆盖SQL注入、文件上传等主流漏洞类型,提升网络安全学习效率与实战能力。

weixin_26642481的博客 207

靶场搭建双环境方案:宝塔+PHPStudy协同配置指南

Web安全靶场(如DVWA、Pikachu)并非普通Web应用,而是高度依赖特定PHP配置与数据库权限的教学沙盒。其运行原理涉及扩展加载(mysqli/curl/gd)、关键ini指令(allow_url_include、short_open_tag、open_basedir)及MySQL细粒度权限(CREATE/FILE)等底层机制。技术价值在于规避单环境兼容性陷阱——宝塔擅长域名管理与HTTPS反向代理,PHPStudy胜在多PHP版本共存与灵活配置。典型应用场景包括渗透测试教学、红队演练环境构建及WA

weixin_31881651的博客 278

DVWA-Chinese 全中文漏洞靶场:5分钟部署与Web安全实战入门

Web安全是网络安全的核心领域,其基础在于理解常见漏洞的产生原理与利用方式。SQL注入、文件上传、命令执行等漏洞,均源于对用户输入验证不足或信任过度,攻击者通过构造恶意输入,可实现对数据库、服务器文件系统乃至操作系统的非授权访问与控制。掌握这些漏洞的挖掘与利用技术,对于从事渗透测试、安全防御及CTF竞赛具有重要价值。DVWA作为经典的漏洞教学平台,通过模拟真实漏洞环境,为学习者提供了绝佳的动手实践机会。本文聚焦于DVWA-Chinese这一深度汉化与优化版本,它极大降低了中文用户的学习门槛,并结合PHPSt

cumo3681的博客 590

SQLi-Labs靶场搭建实战:PHP版本、数据库初始化与启动排错

Web安全学习中,SQL注入是渗透测试的核心基础,而一套稳定可控的漏洞靶场能显著降低练习门槛。SQLi-Labs作为垂直型SQL注入练习平台,依赖老旧PHP的mysql_*函数与特定MySQL配置,版本不匹配常导致页面白屏、数据库连接失败。相比DVWA、Pikachu等综合靶场,它以65个关卡系统覆盖联合查询、报错注入、布尔盲注等场景,技术价值在于把注入判断链路固化为可重复验证的工程实践。适用于本地phpstudy、Docker或LAMP环境的手工练习与Burp抓包配合。从环境选型、源码落位、数据库初始化到

WGH100817的博客 406

DVWA1.9和phpstudy环境搭建

DVWA使用PHP写的,所以首先需要搭建web运行环境,我这里使用的是phpStudy1.phpstudy下载地址链接:https://pan.baidu.com/s/1zLMs55OhxRMkcEhpn3yHdw 密码:nh77phpstudy安装很简单,不赘述,安装路径不要有汉字安装完后启动若端口启动失败,主要原因有     a.没有向系统服务注册Apache,MySQL服务     运行:s...

WWE135的博客 3131

非凸非光滑优化的惯性块镜像下降方法(Matlab代码实现)

内容概要:本文详细介绍了“非凸非光滑优化的惯性块镜像下降方法”的Matlab代码实现,重点针对三相PWM控制等复杂工程场景中的非凸非光滑优化问题,提出一种高效的迭代求解算法。文章系统阐述了该方法的数学建模原理、收敛性分析及优化机制,并提供了完整的Matlab仿真代码与多个典型应用实例(如储能系统管理、电力电子控制等),帮助读者深入理解算法在实际科研与工程中的部署方式。内容兼具理论深度与实践价值,突出展示了该方法在电力系统、信号处理和数据融合等领域的广泛应用潜力。; 适合人群:具备扎实的数学优化理论基础和良好Matlab编程能力,从事控制工程、电力电子、信号处理或运筹优化等相关方向的研究生、科研人员及工程师(建议具有1-3年以上相关经验);特别适合致力于非凸优化、智能算法设计及工业级仿真验证的技术人员。; 使用场景及目标:① 掌握非凸非光滑优化问题的先进求解策略,提升对复杂目标函数与约束条件的处理能力;② 利用所提供的Matlab代码快速实现惯性块镜像下降算法,应用于电力系统优化控制、路径规划、信号恢复等科研项目中;③ 借助文中的仿真案例进行算法性能测试、参数调优与二次开发,推动高水平论文撰写与技术创新。; 阅读建议:此资源以算法实现为核心,建议读者结合理论推导与代码实践同步学习,优先按照文档推荐目录顺序逐步深入,确保掌握前置知识体系;同时关注公众号“荔枝科研社”获取完整资源包、配套资料及更新内容,全面提升学习完整性与科研应用效能。

全国各城市POI数据2012年-2023-最新整理zip

全国各城市POI数据2012年-2023-最新整理zip 新增2024全国POI矢量数据 数据时间2024年5月 shp格式 36万个数据 数据来源OpenStreetMap 一、全国范围2012、2014、2016、2018、2020、2022年和2023年常用POI数据集 数据是全国范围2012、2014、2016、2018、2020、2022年、2023年常用POI数据集,主要包括:包括餐饮、风景名胜、公共设施、公司企业、停车场、收费站、厕所、服务器等等。 【资源信息】 中文名称: 全国范围POI数据集 显示时间: 2012、2014、2016、2018、2020、2022、2023年 数据来源: 高德地图、百度地图、网络搜集等 数据格式:矢量点数据(shp) 数据坐标:WGS_1984 二、全国各城市POI兴趣点数据 数据年份:2012-2023年 数据范围:每年样本量6000w-9000w POI类别:150+POI兴趣点类别 原始来源:2012-2017年来源于百度,2018-2022来源于高德 数据指标:POI名称,经度,纬度,省份,城市,区域(各年指标有所差别)

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

【多无人机追捕-逃逸】平面中多追捕者保证实现的分散式追捕-逃逸策略研究(Matlab代码实现)

内容概要:本文针对平面中多无人机追捕者与逃逸者之间的博弈问题,提出了一种保证实现的分散式追捕策略。该策略基于相对几何关系与速度信息,实现了多追捕者在无中央协调机制下的自主决策与协同围捕,确保对逃逸者的有效捕获。研究内容涵盖追捕-逃逸系统的数学建模、分散式控制律的设计、收敛性理论证明,并通过Matlab仿真验证了算法在多种场景下的有效性、鲁棒性与可扩展性,展示了追捕者如何动态调整轨迹以逐步缩小包围圈并最终完成捕获。; 适合人群:具备控制理论、机器人学、自动化或计算机科学背景,熟悉Matlab编程,从事多智能体系统、无人机协同控制、博弈论或自主系统研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多无人机系统在安防监控、目标围捕、应急响应等任务中的协同路径规划与自主决策;②为多智能体协同控制、分布式算法设计与博弈策略研究提供理论支撑与可复现的代码实例,支持进一步拓展至三维空间、多逃逸者或异构无人机场景。; 阅读建议:建议读者结合Matlab代码深入理解控制律的设计原理与实现细节,重点关注系统的建模过程、稳定性分析与仿真结果的动态演化,可在此基础上开展算法改进与跨场景迁移研究。

【专利信息处理】基于Java+Vue的专利文本主题标引与新颖性检索系统设计 项目介绍 基于java+vue的专利文本主题标引与新颖性检索系统设计与实现(含模型描述及部分示例代码)

构建可演进的专利知识服务平台,为后续接入大模型、知识图谱等高级功能奠定基础。; 阅读建议:此资源以实际项目为导向,包含模型设计与部分核心代码示例(如文本清洗、术语归一化、TF-IDF、TextRank、BM25、余弦相似度等),建议读者结合代码理解算法逻辑,并尝试在本地环境中搭建原型系统进行调试内容概要:与扩展,深入本文介绍了一个掌握专利信息处理的技术基于Java与Vue的链路与业务专利文本主题标边界。引与新颖性检索系统的设计与实现。系统通过整合自然语言处理、信息检索与排序融合技术,实现了对海量专利文本的自动化处理,涵盖数据采集、文本清洗、主题提取、技术标签生成、相似专利检索及新颖性辅助分析等功能。核心技术包括字段分层处理、中文分词优化、领域术语归一化、TF-IDF与TextRank关键词提取、BM25与余弦相似度排序、以及权利要求特征覆盖度计算等。系统采用Spring Boot构建后端服务,结合Elasticsearch实现高效全文检索,Redis缓存热点数据,Vue构建可视化前端界面,支持多维度筛选与结果展示。项目强调“辅助而非替代”专业判断,通过闭环反馈机制持续优化术语库与模型效果,致力于将专利文献转化为可计算、可检索、可解释的技术知识资产。; 适合人群:具备Java和Vue开发基础,熟悉Spring Boot、Elasticsearch、MyBatis Plus等技术栈,从事知识产权信息化、NLP应用开发或科技情报系统研发的工程师与研究人员,尤其适合1-5年工作经验的技术人员;; 使用场景及目标:①用于企业研发立项前的技术查新与专利风险排查;②支持知识产权服务机构开展专利布局分析与无效检索;③辅助高校与科研机构进行技术趋势识别与竞争对手监测;④构建可演进的专利知识服务平台,集成大语言模型与知识图谱实现智能升级; 阅读建议:此资源包含完整模型架构与核心代码示例,建议结合实际项目实践,重点理解文本预处理流程、多阶段检索策略与新颖性辅助判断逻辑,并可根据行业需求扩展术语库与算法模块。

(Multisim课设资料)最全面函数信号发生器(三角波+正弦波+方波信号+锯齿波仿真设计+报告文档

内容概要:本文详细介绍了基于Multisim平台设计的多功能函数信号发生器,能够稳定产生三角波、正弦波、方波和锯齿波四种常用信号,涵盖完整的电路设计、仿真验证与调试过程,并配套完整的课程设计报告。资料系统阐述了各波形的生成原理与电路结构,包括运算放大器的应用、RC振荡电路设计、积分与比较电路实现等关键技术,帮助使用者深入理解信号发生器的工作机制。资源包含Multisim仿真文件、设计原理图、波形分析图表及撰写规范的课设文档,便于直接学习与修改应用; 适合人群:具备电路分析、模拟电子技术等基础知识的电子信息类、自动化类及相关专业的本科学生,适用于课程设计、实验实践或毕业设计阶段的学习者,以及指导相关实践课程的高校教师; 使用场景及目标:①作为模拟电子技术课程设计的参考模板,完成函数信号发生器的设计与仿真任务;②掌握Multisim软件在电路仿真中的实际应用,提升电路设计与调试能力;③理解多波形信号发生器的实现原理,巩固运放电路、振荡电路等核心知识点;④高效完成课程设计报告撰写,提升综合实践与工程表达能力; 其他说明:所有资料可通过提供的网盘链接完整下载,内容结构完整、逻辑清晰,具有较强的实用性和可复用性,适合作为课程设计的标准参考范例。

用C#实现面向对象编程之继承和多态概念的示例程序

这是文章《面向对象编程之继承和多态》的配套示例程序。在学习面向对象编程时都学习到三个概念:封装、继承、多态。封装已经讲解过,可以翻一下本博客的发表记录。所谓的继承,就是父类已经实现的属性、方法等,子类也跟着有,无需重复实现。所谓的多态,就是父类只定义的属性、方法等的名称、数据类型、参数,具体由子类实现。

douyin-favorite-MyLike-2.0.3.zip

douyin-favorite-MyLike-2.0.3.zip

数据IEEE123节点数据

内容概要:本文档是一份面向科研人员的综合性技术资源汇编,聚焦于电力系统、智能优化算法、机器学习与深度学习、信号处理、路径规划、无人机应用及通信技术等多个前沿科研领域,提供了大量基于Matlab、Simulink和Python的代码实现资源。文档突出IEEE 123节点配电网数据的实际应用,涵盖三相PWM整流器控制、双有源桥(DAB)变换器优化、微电网经济调度、储能系统配置、卡尔曼滤波状态估计、多目标优化算法等关键技术的仿真与研究。资源体系结构清晰,强调理论与实践深度融合,适用于电力电子、智能电网、自动化控制等方向的科研仿真与创新验证。; 适合人群:电气工程、自动化、计算机科学、通信工程及相关专业的研究生、科研人员以及具备一定编程基础的工程技术人员。; 使用场景及目标:①开展电力系统仿真与优化研究,如配电网重构、微电网调度、储能选址定容等;②支撑智能算法开发与实证,涵盖路径规划、状态估计、信号融合等课题;③辅助高水平学术论文复现与技术创新,提升科研效率与成果质量。; 阅读建议:建议依据提供的资源目录系统化浏览,优先筛选与自身研究方向匹配的案例进行深入学习,结合Matlab/Simulink或Python环境动手复现代码,注重理解算法设计原理与仿真实现细节,以实现从模仿到创新的科研能力跃迁。

英文打字练习 可自定义练习范围

英文打字练习 可自定义练习范围 给初学者熟悉键位用

上一篇: Linux安全审计实战:用auditctl监控/etc/passwd文件修改(附规则详解)
下一篇: 制造业套件值不值?Kepware多品牌PLC接入成本深度对比
github5actions
博客等级 码龄1天 0粉丝 1824原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值