Discuz!论坛程序wap\index.php页面存在变量覆盖漏洞
添加时间:
2008-12-09
系统编号:
WAVDB-01264
影响版本:
Discuz! 4.X
程序介绍:
解决方案:
该漏洞存在于Discuz!4.x很多年了,在fix号:20080804里[1]补丁那个wap宽字节漏洞时被一起偷偷补丁了,补丁代码:
$chs =
;
if($_POST && $charset !=
utf-8
) {
$chs = new Chinese(
UTF-8
, $charset);
foreach($_POST as $key => $value) {
$$key = addslashes(stripslashes($chs->Convert($$key)));
}
unset($chs);
}
[1]http://www.discuz.net/thread-1008182-1-1.html
信息来源:
<*
80vul
http://www.80vul.com/dzvul/sodb/05/sodb-2008-05.txt
*>
2008-12-09
系统编号:
WAVDB-01264
影响版本:
Discuz! 4.X
程序介绍:
Crossday Discuz! Board 论坛系统(简称 Discuz! 论坛)是一个采用 PHP 和 MySQL 等其他多种数据库构建的高效论坛解决方案。作为商业软件产品, Discuz! 在代码质量,运行效率,负载能力,安全等级,功能可操控性和权限严密性等方面都在广大用户中有良好的口碑。凭借 Discuz! 开发组长期积累的丰富的 web 开发及数据库经验,和强于创新,追求完美的设计理念,使得 Discuz! 在很短时间内以其鲜明的个性特色从国内外同类产品中脱颖而出。经过了效率最优化和负载能力最佳化设计的 Discuz! ,已获得业内越来越多专家和权威企业的认可。
漏洞分析:
Discuz!4.x一直存在着一个变量覆盖漏洞.代码如下:
- $chs =
- ;
- if($_POST && $charset !=
- utf-8
- ) {
- $chs = new Chinese(
- UTF-8
- , $charset);
- foreach($_POST as $key => $value) {
- $$key = $chs->Convert($value); //foreach处理$_POST导致变量覆盖
- }
- unset($chs);
在此代码前还包含了很多变量初始化的文件,那些初始化了的变量[比如forumdata/cache/cache_forums.php里的变量]通过上面的代码后都可能被覆盖后注射非法代码,而导致sql注射/代码执行/xss等严重的漏洞.
解决方案:
该漏洞存在于Discuz!4.x很多年了,在fix号:20080804里[1]补丁那个wap宽字节漏洞时被一起偷偷补丁了,补丁代码:
$chs =
;
if($_POST && $charset !=
utf-8
) {
$chs = new Chinese(
UTF-8
, $charset);
foreach($_POST as $key => $value) {
$$key = addslashes(stripslashes($chs->Convert($$key)));
}
unset($chs);
}
[1]http://www.discuz.net/thread-1008182-1-1.html
信息来源:
<*
80vul
http://www.80vul.com/dzvul/sodb/05/sodb-2008-05.txt
*>