记录时间: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
发现改文件是供/Apps/Home/View/default/JQuery/index.html
调用的:
提交防御脚本,防御成功!!!
感觉把display()里的参数去掉也行。
再吐槽:log在源码文件里也可见…