DEDECMS网站管理系统Tag.php页面存在SQL注入漏洞

2011-3-31 18:05:41 来源:网络转载 浏览:204
DEDECMS网站管理系统Tag.php页面存在SQL注入漏洞
影响版本:DedeCms2007

程序介绍: DedeCms 基于PHP+MySQL的技术开发,支持Windows、Linux、Unix等多种服务器平台,从2004年开始发布第一个版本开始,至今已经发布了五个大版本。DedeCms以简单、健壮、灵活、开源几大特点占领了国内CMS的大部份市场,目前已经有超过二十万个站点正在使用DedeCms或居于DedeCms核心,是目前国内应用最广泛的php类CMS系统。

漏洞分析: 目录下的tag.php文件对变量$tag处理不当,导致注入漏洞的形成:
 
  1. if(isset($_SERVER[ QUERY_STRING ])){  
  2.  $tag = trim($_SERVER[ QUERY_STRING ]); //得到GET的参数  
  3.  $tags = explode(  
  4. /  
  5. ,$tag); //以“/”分隔为数组$tags  
  6.  $tag = $tags[1]; //取数组$tags的第二个元素  
  7.  if(count($tags)>3) $PageNo = intval($tags[2]);  
  8.  }else{  
  9.  $tag =   ;  
  10.  }  
  11.  $tag = urldecode($tag); //对变量$tag做URL解码处理,%27解码后就成了“  
  12. ”  
  13.  //如果没有Tag或Tag不合法,显示所有Tag  
  14.  if($tag==   || $tag!=addslashes($tag) ){ //如果$tag为空或有  
  15. 、 、\等字符则执行  
  16.  $dlist = new TagList($tag,  
  17. tag.htm  
  18. ); //创建类TagList的实例,$tag传给其构造函数,此时$tag可能包含“  
  19. ”  
  20.  }  
  21.  //如果有Tag,显示文档列表  
  22.  else{  
  23.  $dlist = new TagList($tag,  
  24. taglist.htm  
  25. );  
  26.  }  
  27.   
  28. 类TagList相关代码:(./include/inc_taglist_view.php)  
  29.   
  30. class TagList  
  31.  {  
  32.  ..  
  33.  var $Tag;  
  34.  ..  
  35.  //php5构造函数  
  36.  function __construct($keyword,$templet//$keyword=$tag  
  37.  {  
  38.  ..  
  39.  $this->Tag = $keyword;       //$this->Tag=$tag  
  40.  ..  
  41.  if($this->Tag!=  
  42.   
  43. )  
  44.  {  
  45.  $this->TagInfos = $this->dsql->GetOne( Select * From `#@__tag_index` where tagname like   
  46. {$this->Tag}  
  47.   ); //查询执行,漏洞产生!  
  48.  }  


解决方案:
开发厂商:Dedecms
目前厂商已经发布了升级补丁以修复这个安全问题(Dedecms2007),请到厂商的主页下载:http://www.dedecms.com
(0)
(0)