CTF初次线下总结
刚参加完2018年的江苏省领航杯的线下赛,总结一番。
这次线下赛的形式跟正常的AWD不同,原先准备的徐师傅的awd自动化框架没有实战的机会,有点可惜。比赛时给了四根网线,两根攻击网线连接靶场,两根防御网线连接加固机,一台二进制,一台web机,但是比赛中好像并没有看见AI对二进制机的攻击……,我主要负责加固部分,所以主要总结一下防御部分,和提醒自己的学习不足之处。
起手
由于是第一次参加awd形式的线下赛,所以赛前准备了许多起手式,参考了一番郁离歌的起手式……
-
连接上加固机,先
passwd
修改用户密码,然后XFTP将网站目录下载下来,再复制一份放着(非常重要的一步,在比赛中改着服务宕机了,差点就gg了,还好由ctrl+z大法),所以备份很重要。 -
D盾扫描网站目录,当场扫除后门,直接进服务器找到删除。
-
给网站服务挂上waf(
require_once("capture.php")
),这一步可以防住大多数的漏洞攻击,还好比赛的checker不是很严,waf一直工作得很好。 -
seay代码审计自动扫描,给出审计方向。
起手完毕
在起手完毕后,开始审计代码。比赛中给的代码漏洞都很典型,很容易就能看到sql注入、反序列化、文件包含、变量覆盖的洞,然后一脸懵逼……
发现了不懂加固也是非常的无奈,回想了一下,之前做题,线上赛之类的全是在攻击,加固的知识都没有怎么看,只能是在sql注入点加上addslashes()
来防一下万能密码,对于反序列化的防御无可奈何……
不过waf大法是真的好用,前面不懂加固的洞好像全被waf防御了,看到了不懂加固的地方我们没有丢分。可惜waf不是万能的,比赛官方的exp还是打出了两个不太熟的洞,找不到地方,也不懂加固……分别是ssrf和xxe,xxe在刷题的时候还有接触到,但是不是特别地熟悉,ssrf是完全的懵逼。需要之后做一点功课了。
比赛黑科技
比赛之前就调侃了很多线下赛黑科技,像删除服务文件剩静态文件的搅屎操作,在这次比赛也来了那么一手操作。
比赛防御流程是这样的:防御服务器的根目录里面有一个flaginfo.txt
文件,官方AI用exp去攻击服务器,读到了文件里面的字串后判定失分。
而我在看流量日志和文件变化的时候发现,不管是ssrf,还是xxe的洞爆出来,最后官方AI都是会用漏洞往uploads文件夹里面写入后门来获取文件字符。
所以……在最后一波攻击前,我……chmod 700 uploads/
……谁也别想往里面写东西……成功防住了最后一波,还没有被check down(暗自窃喜……)。拿了第二……╮( ̄▽  ̄)╭
最后总结
- 需要加强防御知识的学习,之前学的攻击姿势要重新看一下防御姿势
- 还要学习更多的漏洞,熟悉陌生的漏洞姿势
- 关于服务器方面,命令还是不是很熟,之前仗着外网好像没怎么用心记……到了内网一脸懵逼……
- php服务也需要继续加强学习……
还有好多东西要学啊……(╯‵□′)╯︵┻━┻