2019红帽杯-线下赛-粤湾期货wp

记录时间:2019.11.23

比赛时间:2019.11.23

题目源码,点击下载

首先介绍一下这次的线下赛规则,采用了另一种AWD模式,与我上一次参加的“广东省强网杯”的线下赛AWD略有区别。每支队伍只会遭到平台方的EXP,CHECK,另外队伍只可通过提交flag或防御脚本得分。每支队伍都是独立环境,源码直接可得。
具体赛制网上可查,不再复述,感觉这种赛制少了很多大佬“搅屎”的乐趣,但好处是比赛过程不会太过紧张激烈。

赛题

首页长这样:

网站结构:

开始分析

由于有源码了,所以常规操作是直接丢进Seay和D盾扫描。D盾并没有扫描出什么,Seay扫描了一大堆东西,但基本都是仅能进行参考而已。

然后我的习惯操作,就是搜索一些过敏感点:
可知有全局过滤

由于过滤比较完善,就先不测试数据库注入了,改为探测文件上传:

跟踪upload定位文件上传点,可知(直接猜都知道)上传点在/admin页面下,访问/admin目录,是需要身份认证的。

然后我查看全局config文件(本地),得到了数据库的配置信息。里面有数据库信息,和后台管理员的cookie。

然而这些信息并不足以让我登录进后台,当时也没想到改cookie进入后台。

重置网站

由于我已经知道没有SQL注入了,所以就找其它方法了。生产环境install后之后一般都会生成个install.lock文件,但这题没有,我就随便测试了一个/install。不过这个文件源码里面也能看到:

当时是觉得真的牛批,数据库基本信息都有了,所以数据库信息填写正确。然后除了配置管理员,其它都原封不动:

然后利用刚刚重置好的管理员帐号,轻松进入后台:

新挑战

后台留言,添加标签什么的我直接就忽略了,本来也不怎么会利用。

发现一个头像上传

想直接传.php文件,不用想都知道有过滤了,当时直接跳过测试(机智)。

其实点也很好找,我一下就找到了:
写文章>上传插入

系统>设置

当时想着是直接在那里修改,即添加php进去白名单,但多处操作都失败,查看源码:

它会把php改成x,即阻止用户添加php白名单,进而阻止上传webshell。

然后说说我那时的坑:
1,添加.phtm,然后发现不能用,实际上这个需要配置一下环境,才能识别并当作php文件。
2,在.html文件内添加<?php ?>,不过好像会隐藏掉,即不执行不解析。

emmm,似乎卡住了

骚操作,getshell

有空看代码还真不如在网站上随便点点,到处玩玩:
看到了可以dump数据库:

先dump下来再说,万一有flag呢…后来没找到flag,就想着在一些页面直接插入php语句,改一下路径什么的,收获几乎没有。然后又想load file进行读flag,不过当时有点记不太清指令了。。。

直到我看到了:

我就添加了php进去,然后在网站上导入本地备份(修改过后的.sql文件),成功执行。然后去写文章,顺利看到:

发表后,浏览文章,点击获得插件地址,即webshell地址,用菜刀或蚁剑连接,getshell!!

放一张比赛的flag鼓励自己

关于patch

由于这漏洞利用点太大了,我尝试过删除install.php,但防御失败。
想添加数据库信息过滤,但觉得很有难度且不符合生产需求(过滤php字眼)。
现在想想,应该把网站上的数据库相关功能直接删了就行了…

发表评论

电子邮件地址不会被公开。 必填项已用*标注