写在前面
本次强网杯决赛的一个题,还是蛮有意思的,代码可以在github拿到
https://github.com/rainrocka/xinhu
漏洞分析
首先这个系统存在弱口令,在题目给的sql文件当中通过在线md5破解得到test/abc123
接下来就是随便找一个地方进行文件上传
我们抓包看看对这个php文件进行了什么处理,其调用了webmain/task/api/uploadAction.php
下uploadClassAction类的upfileAction函数
引入插件,实例化upfileChajian
类
跳过不需太过于关注的部分,我们跟踪up
函数
看看issavefile
是一个白名单很明显php后缀不符合
跳过不相干一堆函数
可以很明显的发现这类白名单外的文件会被改后缀为uptemp
内容为原来内容的base64编码结果,猜测估计是为了防止文件包含,不过都到这里了确实有点小单纯
接下来就是最关键的地方,在webmain\task\runt\qcloudCosAction.php
腾讯云存储下的qcloudCosClassAction
的run
方法,根据id从数据库取出数据,接下来看图