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