Sky's blog

XDCTF线下赛经历及感悟

Word count: 1,552 / Reading time: 5 min
2017/10/30 Share

比赛经过

今天比赛方一共给了5台服务器:1台windows和4台linux
其中2台Linux是pwn,2台Linux是web,1台linux是mobile
然后我们都不太擅长pwn和Mobile,所以一天只打了2台web的linux,所以后面就写一些web的经过了。
首先第一台web是一个海洋cms,版本号非常老,我们由于以前有做过这方面渗透。所以上来打的十分得心应手
我直接用了前一晚准备好的群杀脚本,上去就疯狂输出了一波,然后前3轮里,只有我们在疯狂得分,然后我们意识到这样不行,开始种shell,当时不知道,因为python一般都是Linux自带的,所以我们想都没想,就执行了表哥的框架,然后就血崩了,始终没有人反应,当时我们以为是自己的操作问题,调了半天,后来意识到可能服务器没有Python,于是尝试了一波,这个php的服务器还真特么没有Python……也在我们调试的时候,大家也都开始疯狂重放(也可能去百度了)我们打的payload,于是乎,不少人补上了洞,或者是用相同的打法打了起来,我们觉得这样不行,就开始给大家种前一晚写好的内存马,稳定的获得了4个shell权限(一直维持到10点30左右),此时我们也意识到这样不行,因为内存马好像也正在被杀,于是乎我们又找到了一个post的洞,值得一提的是,这个洞,我们稳定的打了4个服务器……从早打到晚,或许他们放弃了?(毕竟比赛结束,分差很大,还有几个队伍是负分)
但是只靠一个php服务器是远远不行的,很快我们的python服务莫名宕了,这个时候我们才意识到,python被打了,我们不能只看php了,也是这个时候我们从第一掉到了第三(大约也是10点半的时候)。
然后我们第一反应就是立刻去看python,但是我们没有立刻去审计漏洞,而是去想如何重新启动这个python,毕竟宕服务,一轮扣100分(1个flag才25分),但是蛇皮的是,我们一直启动的是:python manager.py runserver所以服务一直开在5000端口,就特么很坑,一直到中午12点吧,我们才找到了python的通杀洞,然后一口气每轮怒拿8个flag,但是服务重启的方式我们还是没发现,我们期间申请了1次重置,终于发现,要加端口号-p 8080,就很坑,成功找到启动方法后,嘉宾又发现了一个python执行系统命令的洞,然后我们立刻申请了重置服务,然后上去就补完了洞,开始写脚本打人,
但是我们当时应该是脑抽了,没有留shell,直接killall python杀了差不多全场8个服务器,只有我们和第一第二的python服务正常,其余全都宕了,然后拿了差不多2个小时的宕机分,从第5追回了第3,这段时间里,php的服务器的4个flag还是能持续获得,加上别的队伍的宕机分,我们差不多一轮能有400分,然后就特么有点飘了,没有继续研究,3点的时候我们的python服务又开始宕了,我们当时就很崩溃,手动启动也不能过check(一直到赛后才知道,还有一个confirm的函数,一直点就会把我们服务宕了???我这个后面还得看看,好气!)然后就很尴尬,我们就一直用4个php的flag和这个宕机分抵消。然后总分就保持不变了……一路掉到了第6名,一直到比赛最后半个小时,他们主办方好像关掉了check,然后我们就靠4个flag的稳定输出,超过第6,最后成为第5……

自我反思

1.我们维持shell的能力太差了,一旦框架不能使用,我们就像迷失了一样,要不是前一晚准备了内存马,可能之前就懵逼了,但是后期内存马也是被删掉了,我们得分完全因为他们有几个队比较弱,全场打下来没发现漏洞,后来直接放弃了。
2.还是不能在第一波攻击就稳定住shell,上次南京省赛awd和这次的awd我们都是上来可以怒拿一大波flag,但是不会维持权限,慢慢就丢掉了很多服务器
3.必须多尝试sudo,比如今天的php服务器,我们竟然能直接成为root……就很无语,我们也是皮了一手的,直接把wget和curl改名了,但是值得一提的是,我昨晚瞎改的通防,竟然能过check,所以今天的php服务就很爽,全程没被打过(我们也是防守第2名),也是前2个小时我们能保持第一的原因
4.对于Python的服务虽然比jsp,.net什么的熟悉一点,但是在修洞上还是不够,很明显这次攻击的主要web战场在flask,我们之前也是开发过,但是显然没有理解它的全部流程和规则,就打的比较懵逼,以后必须准备一套jsp,python的计流量或是通防什么的。
5.说来说去最大的问题,还是在于shell的维持,我们可以一上来打洞,却不能一上来留shell,所以以后表哥的框架必须也要亲身开发,多人合作可能才能改出适应一切环境的框架,毕竟现在awd的比赛方式也是各种各样,集思广益总是好的。

后记

今天终于懂了前辈们说的,得pwn者得天下,今天一个队拿下了Pwn,比第二高了12000分(我们整场才17000分)
今天丢的分80%都在宕机真的很亏,不然1万应该是稳的……哎= =~

CATALOG
  1. 1. 比赛经过
  2. 2. 自我反思
  3. 3. 后记