2019红帽杯-线下赛-粤湾投资wp

记录时间:2019.11.24

比赛时间:2019.11.23

源码文件,点击下载

赛题

我在本地搭建失败了,数据库那里没有配置出来,页面展示不出来,但这并不影响解题。
数据库配置文件:Apps/Common/Conf/dbconfig.php

文件结构:

典型的thinkphp框架

开始分析

还是丢进Seay和D盾扫了一遍,不过依然没有扫出什么有价值的信息。然后全局搜索addslashes,htmlspecialchars依然能找出不少。实际上thinkphp也是有很多sql注入点的(网上可查),但我觉得flag不在数据库里。

案例来说,这些题还是会有个后台:

不过我好像没有登录进去,config.php里没有什么有价值的信息。

解题,任意文件读取

废话就不多说了,后台登录不进去就有很多功能都用不了了(其实email.php里泄露了邮箱信息,可以尝试用邮箱重置管理员密码)。

但thinkphp我刚好前不久重温了一下漏洞,所以想到了日志泄露漏洞(是我想多了,到处都是洞)。
先用自家扫描器扫描一下,比赛时是有很多更深入的路径,但本地会比较少:

发现/apps目录可访问(比赛中是爆破精准到文件夹内的路径),一路点击进去。这网站大多数后台目录都可访问,但我们把目光瞄准在这里:

点击查看第二个日志,里面有一条敏感路径:

访问该路径,发现可访问!!!那就改成:
/aikehou/echo/index.php/Jquery/?template_file=/flag

访问获得flag

溯源patch

定位参数:template_file

发现改文件是供/Apps/Home/View/default/JQuery/index.html调用的:

那就限制目录访问吧,patch:

提交防御脚本,防御成功!!!

感觉把display()里的参数去掉也行。

再吐槽:log在源码文件里也可见…

发表评论

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