AWD线下赛经验总结
第二次打ctf国赛了,去年虽然进了分区赛,但是因为疫情还是线上赛,今年进分区赛终于是线下了,这应该是我进大学来第一次打线下赛,都是因为疫情的影响。这次华东南赛区的分区赛打的是AWD,之前只打过一次星盟的AWD,不过是坐在电脑前一下午什么也不会罢了。这次应该才算第一场正式的AWD,正是因为第一次,经验完全不足呀。
下面总结一下这次比赛,从0到1的提升是巨大的。
赛前准备
之前没打过AWD所以对这种形式的比赛没有什么了解,比赛前就根据网上的资料去准备。
大概总结了一下比赛开始需要做的一些基础防御。
1 |
|
有意思的是我们的赛前准备除了备份其他都用不上,这就是实战和理论的区别吧。
比赛前期
现在总结一下实际上本场比赛开始需要做的。
连接ssh
其实本来连接ssh不值得单独分点讲,但是网上的资料说的连接ssh都是给账号密码,所以连上之后就需要改ssh密码。但是这场比赛给的并不是字符密码,它给了一个key
就是这样一个rsa文件,所以连接ssh的时候,如果是用软件连,那就要把这个文件导入到ssh里面当做密码。
这里用的是Mac的Termius软件,password右边有个Keys点一下就可以导入进去了,这样才能连接上。
忘了说了,每一题都有一个ip所以有几道题目就需要连几台靶机,然后每队的每道题目的ip都是公开的,我们都可以在平台上看到。
因为给的是密钥,所以这不需要修改ssh密码
备份网站
因为第一步连接ssh其实就弄了挺久的,刚开始都没找到那个密钥文件,所以连上ssh立马就用ftp拖文件到本地,总共好像开了5道题目,所以要备份5个网站。
刚进入ssh或者ftp并不是根目录,我们需要现cd到根目录,然后进入/var/www然后把整个html文件夹拖到本地,但是这里会出现一个问题,就是因为我们拿到的用户并不是root用户,所以有些文件可能无法备份,这个除了提权应该没有什么办法,不过大部分题目都是可以备份的,不需要太担心。
对于pwn题的话,应该是有个challenge文件夹的,我猜是备份这个文件夹,如果有错请大佬指正。
如果需要恢复备份文件,上传上去之后注意看一下题目的文件权限,如果没有执行权限就需要执行一下chmod命令
1 |
|
不然check过不了。
找各种密码
比如mysql密码或者网站后台密码,一般都是在配置文件里面,如果找不到就直接搜索整个网站目录,关键字是password这种。
因为每支队伍的靶机环境都是一样的,所以如果找到密码,最好是修改一下,因为大家的密码都是一样的。
利用D盾和seay代码审计这两个软件扫网站漏洞
因为awd赛制的原因,题目难度不会特别大,并且因为有源码,所以可以直接用这两个软件去扫漏洞,因为实际测试发现两个软件扫出来的结果不一样,所以建议两个软件都扫一遍。
如果扫出漏洞了,比如有一句话木马,赶紧去把自己的注释掉,最好不要删,因为可能check不过,注释一些代码一般没问题。
如果遇到自己不了解的漏洞,一定不要轻举妄动,如果改了很可能check不过,check不过是很危险的,之后会专门将这个check机制。
所以如果扫出漏洞了,直接去攻击别人的靶机,自己如果能修漏洞就修,前提是check一定要过。
其实一些基础漏洞挺多的,所以可能就是拼手速了,谁能最快写出payload谁就可以马上拿分。
比赛中期
首先要强调的是不要随意去改源码,因为很可能check不过,如果大家都因为改了源码check不通过,只有很少人check过了,那么你就很可能利用check机制加很多分,因为check机制是把check没过的队伍都分别扣100分,然后把分数分给check过了的队伍(此规则只适用本次比赛,其他比赛未知)
其次就是找漏洞拿权限了,这一步才是比赛最需要做的。每个题目不只有一个漏洞,漏洞多种多样,但是最终目的都是拿到对方的flag。有时候不需要拿到对方的服务器权限同样可以获取到flag,这就要看漏洞的类型了。
还有一个非常重要的就是提权,拿到普通用户的权限很多时候是不够的,权限越高越好,因为对方一般也就是普通用户权限,如果你提权了,那你拥有对方服务器的权限比他自己的权限都高,那么优势肯定非常大,甚至完全可以控制他了。
其它关于这一块的经验也没什么,主要就是找漏洞的能力了。
比赛后期
这段时间,大部分队伍基本上都解出了很多题目了,所以这时候提交flag拿到的分数很少,这时候一个拿分点就是check,因为这个时候,其实大家的题目基本上都挂了,可能是有人在大家的题目里面放了乱七八糟的东西,目的就是不让你check通过,所以这个时候如果你可以保证自己的题目可以check过,得到的分数是很多的,当然你也可以让别人的题目挂了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!