DedeCms织梦系统全局变量覆盖漏洞

作者:linux120 发布时间:January 20, 2013 分类:服务器维护

描述:
目标存在全局变量覆盖漏洞。
1.受影响版本DEDECMS 5.7、5.6、5.5。
2.漏洞文件/include/common.inc.php
3.DEDECMS的全局变量初始化存在漏洞,可以任意覆盖任意全局变量。
危害:
1.黑客可以通过此漏洞来重定义数据库连接。
2.通过此漏洞进行各种越权操作构造漏洞直接写入webshell后门。
解决方案:
目前官方版本“DedeCMS V5.7 SP1正式版”已经解决此问题,建议到此处下载最新版本进行升级:http://www.dedecms.com/products/dedecms/downloads/
临时解决方案:
在 /include/common.inc.php 中
找到注册变量的代码
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}
修改为
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) {
if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){
exit('Request var not allow!');
}
${$_k} = _RunMagicQuotes($_v);
}
}

ThinkPHP框架任意代码执行漏洞

作者:linux120 发布时间:January 15, 2013 分类:服务器维护

描述:
目标存在任意代码执行漏洞。
1.攻击者可以直接在使用了ThinkPHP框架的网站上执行任意php代码.
2.漏洞形成原因:ThinkPHP框架由于URI取值后动态赋值生成URL时,使用了preg_replace函数,并调用了e开关,同时又使用了支持php变量语法解析的双引号方式,最终导致了一个任意代码执行漏洞.
危害:
黑客可以利用该漏洞直接在网站执行任意代码,从而有可能直接控制网站服务器,盗取网站数据,影响网站的正常运营。
解决方案:
官方已经发布补丁:
https://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838或者直接修改源码:/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php125行:$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,$paths));修改为$res = preg_replace('@(w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']=\'\\2\';', implode($depr,$paths));将preg_replace第二个参数中的双引号改为单引号,防止其中的php变量语法被解析执行。

如何防范PHP已知会话确认攻击

作者:linux120 发布时间:January 8, 2013 分类:服务器配置

描述:
目标存在PHPSESSID已知会话确认攻击漏洞。
1.通过注入用户的会话,冒充用户去通过网站的认证。
2. PHPSESSID已知会话确认攻击是通过注入一个客户的PHPSESSID,然后修改其PHP session cookie,最后通过修改后cookie值去通过网站的认证。

危害:
1.冒充用户去通过认证,然后进行下一步攻击。
2. PHPSESSID已知会话确认攻击(Session fixation)的原理与Session劫持非常相似。攻击者需事先获得该session ID,然后通过欺骗用户使用该session ID去进行认证,认证后由于session ID不变,而session则变成了一个认证后的session,最后攻击者则可以直接使用该session ID和认证后的session以用户的身份通过系统的认证。

解决方案:
在PHP.INI文件中配置 session.use_only_cookies = 1。该选项让管理员能够避免用户被攻击。默认值为 0.
注:
1. 请确认修改的 php.ini 文件是当前网站使用的,您可以使用 phpinfo()函数来确认 php.ini 文件位置;
2. 去掉前面的分号。
如 ;session.use_only_cookies = 1 改为
session.use_only_cookies = 1