前言:
之前忙于期末复习,没有及时总结当时参赛的感受及复现,这次就来总结一下。
第一次参赛线下AWD感受
由于是第一次参加AWD比赛,各方面经验都不足,在参赛的前几天也是疯狂搜集各种脚本、框架、工具等,同时也参考大师傅的博客进行学习,下面就叙述一下我学习的过程:
一、进行备份
看了很多大师傅的博客,有的师傅博客中写到有些AWD比赛可能给的SSH账户密码相同,所以可以下载一些Github上修改SSH密码的批量脚本,可以让对手在一开始就丢分,但是经过这次比赛,发现其实现在的比赛已经不会再出现这种人为的漏洞了,主办方也会避免这种漏洞出现,否则整场比赛也没什么意意义了,因此我觉得批量修改SSH密码的脚本在线下赛是没有用处的,不过最好也备份一份,万一主办方懒那(那就有点爽了)。。。
那一开始比赛的时候要做什么,比赛一般都是三个人一队,要想在短时间内获得flag且防护好自己的靶机,就需要队伍内部提前明确好分工,这样效率会很高。
除此之外还需要finalshell
这个工具,这个工具是用来连接你的靶机的,非常方便,只需输入靶机IP、SSH账号密码即可控制自己的靶机、为备份、挂waf等做准备
比赛开始,第一步进行备份,最好使用可视化工具FileZilla FTP Client
进行备份,也可以用linux
本身的压缩打包命令,备份的目的在于万一对方利用漏洞进入你的靶机将你的WWW
下的目录给删除了,如果你没有备份就相当于宕机了,那就等着扣分吧,因此备份是非常重要的,使用主办方给的SSH账号密码、主机IP
进行连接备份
二、查找预留后门或漏洞
备份的另一个好处就是可以审计源码,因为大家的WWW
目录下的服务都是一样的,因此如果我们能率先在源码中找出漏洞的话便可以收一波分,这里就用到D盾
,可以用这个工具查出是否有预留后门或其他利用点
这样也有一个进行攻击的方向,除此之外还有一个便是Seay源代码审计工具
这个也可以提供一个你攻击的方向
三、备好或写脚本
脚本、脚本、脚本!!!非常重要,参加一次比赛发现真的脚本能力实在是太重要了,发现漏洞很重要,但是如果不会写出相应的批量脚本,你可以想象一下那么多只队伍,三个人手动提交,flag到后面每五分钟刷新一次,效率又低又累的要死,因此无论如何都要提高脚本能力(虽然我的脚本很烂,但一定会慢慢提高的),AWD比赛到后面就是比的脚本能力,前提是你要先找出漏洞。如果你和我一样目前脚本能力都很弱,也不用慌张,大师傅们的Github上有很多人家写好的,只需我们看懂,会改就可以用,这里我就不列举资源了,谷歌百度一搜索一堆。总之一句话,学好python,学会自己写脚本,真的很重要!!!
还有就是备份一下常见的POC,因为大多数AWD比赛都是各种CMS,这些CMS或多或少都存在漏洞,有时POC可以帮大忙,GitHub上都有,这里就不列出了
四、心态
参加一次比赛,基本流程就是上面的了,但我觉得有一点很重要,不要抱着我们必须拿多少名次的心态,就放平心态,不要慌张,如果被人打了,要去审查日志,看大师傅是怎么打你的,如果看出人家利用的攻击方式,那你就可以利用这个点拿分,如果心态崩了,整场游戏将毫无乐趣,切记调整好心态,前几次参赛就不要太在乎名次,有更好,没有继续努力,不过需要总结之前是失败到哪里了,不能在一个坑中连续跌倒多次,这样才能进步。
二、复现
这次的比赛算是比较照顾新手了,没有出现CMS官方的一些漏洞,因此POC也就没用到,而是主办