AWD—防守流程
字数 997 2025-08-15 21:33:48

AWD比赛防守流程完全指南

一、网站备份

1.1 Web网站源码备份

  • 图形化工具备份:使用MobaXterm等工具直接拖拽文件进行备份(推荐)
  • 命令行备份
    tar -czvf web_backup.tar.gz /var/www/html/
    
    (注意:命令行方式耗时较长,图形化工具更高效)

1.2 MySQL数据库备份

  • 备份命令
    mysqldump -uroot -ptest test > /tmp/test01.sql
    
  • 恢复步骤
    1. 创建数据库:create database test;
    2. 选择数据库:use test;
    3. 导入数据:source /tmp/test01.sql

二、系统安全检查

2.1 修改Web后台密码

  1. 查询管理员账户:
    select * from admin;
    
  2. 更新密码:
    update admin set user_name='admin123';
    
  3. 刷新权限:
    flush privileges;
    
    说明flush privileges命令将用户权限设置从mysql库加载到内存,使修改立即生效而不需重启服务

2.2 修改MySQL密码

  1. 进入mysql数据库:
    use mysql;
    
  2. 更新root密码:
    update user set password=password("root123") where user='root';
    
  3. 刷新权限:
    flush privileges;
    
    重要:同时修改网站配置文件(如config.php)中的数据库连接信息

2.3 修改SSH密码

  • 使用命令:
    passwd
    
    注意:比赛提供的SSH通常是低权限账户

三、部署WAF(Web应用防火墙)

部署步骤:

  1. 上传waf.php到服务器
  2. 在网站入口文件添加:
    include_once('waf.php');
    // 或
    require_once('waf.php');
    
  3. 使用vi编辑waf规则并保存

四、权限管理

关键权限设置:

  • MySQL用户读写权限限制
  • 上传目录执行权限控制
  • 其他敏感目录权限调整

五、文件监控与防护

5.1 文件监控脚本

  • 监控可读写目录的文件变化
  • 部署方式:
    python monitor.py
    

5.2 处理不死马(持久化后门)

  1. 使用kill.php脚本:
    <?php
    while(1){
      $pid=1234;
      @unlink('a.php');
      exec('kill -9 $pid');
    }
    ?>
    
    执行:
    php kill.php
    
  2. 其他方法:
    • 强制kill进程后重启服务
    • 创建与不死马同名的文件/目录
    • 持续写入同名文件覆盖后门

六、流量监控与日志

部署要点:

  • 部署流量监控脚本
  • 开启并保护服务器日志
  • 分析攻击流量,发现未修复漏洞

七、常见漏洞修复

7.1 万能密码防护

原代码:

$user=$_POST['user'];

修复后:

$user=mysql_real_escape_string($_POST['user']);

7.2 后门处理

  • 定位后门代码(如首页底部的shell执行)
  • 采取注释或删除方式清除
  • 示例:删除cat /flag等危险功能

最佳实践总结

  1. 备份优先:比赛开始立即备份源码和数据库
  2. 密码重置:第一时间修改所有默认凭证(Web、MySQL、SSH)
  3. 多层防护:部署WAF+文件监控+流量监控
  4. 权限最小化:严格控制各目录和服务的权限
  5. 持续监控:实时监控系统状态,快速响应攻击
  6. 漏洞修复:及时修复发现的漏洞和移除后门

注意:不同比赛规则可能对WAF等防护手段有特殊限制,需提前确认规则

AWD比赛防守流程完全指南 一、网站备份 1.1 Web网站源码备份 图形化工具备份 :使用MobaXterm等工具直接拖拽文件进行备份(推荐) 命令行备份 : (注意:命令行方式耗时较长,图形化工具更高效) 1.2 MySQL数据库备份 备份命令 : 恢复步骤 : 创建数据库: create database test; 选择数据库: use test; 导入数据: source /tmp/test01.sql 二、系统安全检查 2.1 修改Web后台密码 查询管理员账户: 更新密码: 刷新权限: 说明 : flush privileges 命令将用户权限设置从mysql库加载到内存,使修改立即生效而不需重启服务 2.2 修改MySQL密码 进入mysql数据库: 更新root密码: 刷新权限: 重要 :同时修改网站配置文件(如config.php)中的数据库连接信息 2.3 修改SSH密码 使用命令: 注意 :比赛提供的SSH通常是低权限账户 三、部署WAF(Web应用防火墙) 部署步骤: 上传waf.php到服务器 在网站入口文件添加: 使用vi编辑waf规则并保存 四、权限管理 关键权限设置: MySQL用户读写权限限制 上传目录执行权限控制 其他敏感目录权限调整 五、文件监控与防护 5.1 文件监控脚本 监控可读写目录的文件变化 部署方式: 5.2 处理不死马(持久化后门) 使用kill.php脚本: 执行: 其他方法: 强制kill进程后重启服务 创建与不死马同名的文件/目录 持续写入同名文件覆盖后门 六、流量监控与日志 部署要点: 部署流量监控脚本 开启并保护服务器日志 分析攻击流量,发现未修复漏洞 七、常见漏洞修复 7.1 万能密码防护 原代码: 修复后: 7.2 后门处理 定位后门代码(如首页底部的shell执行) 采取注释或删除方式清除 示例:删除 cat /flag 等危险功能 最佳实践总结 备份优先 :比赛开始立即备份源码和数据库 密码重置 :第一时间修改所有默认凭证(Web、MySQL、SSH) 多层防护 :部署WAF+文件监控+流量监控 权限最小化 :严格控制各目录和服务的权限 持续监控 :实时监控系统状态,快速响应攻击 漏洞修复 :及时修复发现的漏洞和移除后门 注意 :不同比赛规则可能对WAF等防护手段有特殊限制,需提前确认规则