前言
参加这次AWD前我是想去划一下水,毕竟那么多移动联通电信的老大哥,没想到还能拿到奖(比较捞的奖,滑稽)。没想到的是三大通信公司的队伍并不如高校强,反而是没听过的小公司比如安信与诚科技,团队赛的时候冲在上面,上来就干工大,一点不虚。打完比赛好累,就说一下要点,给协会后辈,以后打AWD的一点建议。
1. 关于赛制(只本次)
决赛规则
● 所有战队初始分数均为10000分;
● 攻防赛共有3道赛题,每个队伍每道赛题的可被扣分值(分值桶)为3000分;
● 每个战队维护一个相同的系统环境(包含3台机器),上面会放出相同的服务,每个服务有相应的 Flag;
● 比赛为回合制,每回合10分钟,每回合会由主办方更新已放出服务的 Flag,并对各战队的各赛题环境进行check;
● 各战队在每个回合中,均可对其他战队运维的靶标环境进行预设安全挑战研究与破解,尝试检测出靶标环境中的预设安全挑战或者未预期安全漏洞,攻破靶标环境获取动态Flag并通过Flag提交接口提交到比赛平台进行验证得分,如Flag验证通过,则根据当前回合该Flag被M个队伍成功获取提交,平分获得90/M得分(加入得分队伍相同列靶标环境的分值桶),而被获取Flag的战队失去90分。如被攻击战队该靶标环境的分值桶已到0,则被获取Flag不再失分,而其他攻击该队伍成功战队也不得分;
● 各战队在每个回合中,也可以对自己运维的靶标环境进行预设安全挑战的研究与修补,尝试修复靶标环境中的预设安全挑战或者未预期安全漏洞,以防止其他战队通过攻击获取本方运维靶标环境的动态Flag进行得分,在进行漏洞修补的过程中必须保证己方靶标环境的正常工作并通过竞赛平台每回合的功能Check,如靶标环境宕机或无法通过功能Check,则战队失去90分,平分给当前回合相同列靶标环境正常的P个战队,每个战队获得90/P得分(加入得分队伍相同列靶标环境的分值桶),如相同列靶标环境所有队伍均异常,则不失分,其他战队也不得分。如失分战队该靶标环境的分值桶已到0,则不再失分;
● 每回合内,服务异常和被拿 Flag 可以同时发生,即战队在一个回合内单个服务可能会扣除 180分
● 参战队伍在修复服务漏洞时,请保持服务的正常功能和打印字符、界面样式,否则将无法通过系统check。
比赛环境
● 队伍登录页面:http://172.16.201.9/,比赛开始时发放登录密码,登录后点击DownloadGamebox下载环境信息zip包,zip解压密码即为登录密码,zip包中包含包含以下信息:环境ip、登录私钥、本队伍token;
● 题目虚拟机使用私钥ssh登录,用户名为xctf,私钥在下载的环境信息zip包中;
ssh命令登陆:ssh -i id_rsa xctf@gameboxip
注意:使用上述命令登陆时需要将id_rsa权限设置为400,命令:chmod 400 id_rsa
使用xshell等ssh客户端登陆按界面提示输入即可,用户为xctf
● 主办方提供各赛题端口的流量数据,在本队维护的题目虚拟机/home/xctf/packages/下,流量数据每10分钟提供一次,如果磁盘空间不足注意清理。
● 每个参战队员网线连接自己PC,dhcp获取地址即可
● 题目id为1-3,对应关系如下:
TASKID | TASKNAME | OS_TYPE | TASKVM_IP | PORT | TYPE |
---|---|---|---|---|---|
1 | trypwn | Linux | 172.16.<TeamID>.101 | 9999 | PWN |
2 | web_emlog | Linux | 172.16.<TeamID>.102 | 80 | WEB |
3 | web_waimai | Linux | 172.16.<TeamID>.103 | 80 | WEB |
提交Flag
登录页面下载的环境信息包含token信息,选手凭借此 token 身份提交 flag。
提交样例:
curl http://172.16.200.14:9000/submit_flag/ -d "flag=XXXXX&token=XXXXX"
2. 赛前准备
其实赛前冲冲电很重要,我个人在比赛中就遇到了以前写的贼溜的东西,硬是记不起来,python脚本写的慢的一比,难受?。
还有就是千万提前下好离线工具,本次比赛吃了亏,之前一直用在线工具包,这次不允许与外网通信,就很难受。
关于ctf个人赛
不到最后一刻莫要放弃,不管你是前几名的水平还是中游,都要坚持住,就本次比赛来看,最后5分钟前三名顺序调换了一次,我也有个题最后才做出来?。
还有一件事,安全需要学的太多了,加油吧!
关于AWD
在团队赛攻防的时候需要注意一下几点:
· wireshark利用好很重要。
· 查流量(本次主办方给了)及时复现大佬的洞拿分。
· 当你拿到一个洞的时候在每轮都可以在所有队伍的服务器上跑一次,所以写好批量脚本就很重要,很重要,很重要。
· 上传的?子最好是只能你自己用,并且防御者还删不掉的(工大老哥的马子),万不得已才用简单的小马,快速拿分。
以上是个人浅见,不足之处请见谅,累了不写了。
3. 可参考的技术文章
【CTF 攻略】CTF线下防御战 — 让你的靶机变成“铜墙铁壁”
Wireshark使用技巧及数据包分析方法
CTF线下攻防赛总结
论如何在CTF比赛中搅“shi”
4. 最后贴几张参赛的图?