第一次线下赛总结

0x01

上周体验了一把awd,那酸爽。。 跟CTF的感觉完全不一样=。=,写篇文章记录一下被吊打的过程。。

在介绍之前先奉上RcoIl师傅的线下赛思维导图 (膜~)
mark

这次比赛一个队伍分配了三个靶机,俩现成的cms,一个自己写的cms,flag在/home目录下。每个队伍开场前有十分钟的系统加固时间,修改ssh登录密码,备份web目录,一开始用tar打包,因为权限问题,web目录有出题人的check,是root用户,而其他文件为普通权限,所以打包到check就卡住。。。然后就慌了==,还没备份完就被人删目录了,后来发现,用tar打包的时候,打包后的压缩文件用绝对路径就可以完成打包,虽然还是会有错误,但是基本没影响。等完成加固以后已经是将近半个小时了。。然后才开始找exp,打别人,被人吊打半场,也是醉了。
下面说一下比赛中出现的几个漏洞。

0x02

  • 靶机一
    是一个finecms v5.0.8,最后用的这个exp打的,发现的有些晚了,只有一两个队伍还没补,只能打NPC跟这几个队伍上了一波分。一开始没写自动提交脚本,五分钟一轮flag,光提交flag也不用干别的了。。所以,脚本还是比较重要的!!
  • 靶机二
    这个cms是旺仔表哥自己写的,需要自己代码审计,比赛的时候被人打了,分析别人的exp,看到了点东西。。。但是还是没读完整代码,就差那么一点==,这里分析一下这个洞。
    在func.php中定义了一个set_session函数,

mark
定义了PORTRAIT这个变量,并把$portrait写入session目录下的php文件中。

mark
然后在login.php中调用这个函数,一个用户对应一个portrait,
登陆成功以后转到home.php
mark
可以看到头像处为portrait经过base64编码之后的内容,怎么控制portrait的内容呢?看一下修改头像部分的代码,跳转到mod_portrait.php,看一下代码
mark
可以看到把img的内容写入文件了,我们可以通过修改img来控制portrait。

下面 注册个账号来测试一下。

注册一个test1的账号,查看web目录下的session文件夹,生成一个新的php文件,查看一下内容:

1
2
3
4
5
<?php
define("UID", "3");
define("NAME", "test1");
define("PWD", "f7c3bc1d808e04732adf679965ccc34ca7ae3441");
define("PORTRAIT", "img/user.png");

所以可以通过修改用户头像来控制portrait的内容,修改为/home/flag,再查看一下php文件

1
2
3
4
5
<?php
define("UID", "4");
define("NAME", "test1");
define("PWD", "7c4a8d09ca3762af61e59520943dc26494f8941b");
define("PORTRAIT", "/home/flag");

修改完成后查看图片源代码,base64解码得到flag。。

  • 靶机三
    cmseasy,网上比较新的洞是去年爆出来的一个前台getshell,具体利用自行百度,这里就不赘述了=。=||

0x03

谈一谈这次比赛的感受吧,感觉awd更有紧迫感,因为时间有限,你既要加固还要攻击别人,windy表哥开场一波骚操作,可惜被人借着梯子就上了。。感觉快速编写脚本的能力也是必不可少的,脚本开跑,你就可以喝喝茶,聊聊天,flag自动提交,岂不是美滋滋~~

本文标题:第一次线下赛总结

文章作者:tkcharlotte

发布时间:2017年09月13日 - 15:09

最后更新:2018年02月07日 - 18:02

原始链接:boombao.net/2017/09/13/第一次线下赛总结/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------