DedeCms V5.1 tag.php注入漏洞_漏洞分析教程-查字典教程网
DedeCms V5.1 tag.php注入漏洞
DedeCms V5.1 tag.php注入漏洞
发布时间:2016-12-21 来源:查字典编辑
摘要:SEBUG-ID:3885SEBUG-Appdir:织梦(DedeCms)发布时间:2008-08-20影响版本:DedeCmsV5.1[s...

SEBUG-ID:3885

SEBUG-Appdir:织梦(DedeCms)

发布时间:2008-08-20

影响版本:

DedeCms V5.1 [sp1]漏洞描述:

Dedecms算是使用比较广泛的PHP整站系统了,在被使用的同时系统的安全性也被人们关注

目录下的tag.php文件对变量$tag处理不当,导致注入漏洞的形成

因为可以使用“'”,所以如果条件可以的话可以直接into file得SHELL。

<*参考

toby57 [www.toby57.cn]

*>

测试方法:

[www.sebug.net]

本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!http://www.sebug.net/bbs/thread-332-1-1.htmlSEBUG安全建议:

暂无

www.dedecms.com// sebug.net [2008-08-20]

Dedecms算是使用比较广泛的PHP整站系统了,在被使用的同时系统的安全性也被人们关注。在以前dedecms也爆过不少漏洞,官方都很快出了补丁,前几天公布了注射漏洞,其实这个系统也受最近很流行的多字节编码漏洞影响。不过今天说的这个漏洞与多字节编码无关,倒跟URL编解码有关系,

呵呵。仅测试了DedeCms2007(DedeCms V5.1 [sp1])。

目录下的tag.php文件对变量$tag处理不当,导致注入漏洞的形成,话不多说,贴代码:

复制代码代码如下:

if(isset($_SERVER["QUERY_STRING"])){

$tag = trim($_SERVER["QUERY_STRING"]); //得到GET的参数

$tags = explode(’/’,$tag); //以“/”分隔为数组$tags

$tag = $tags[1]; //取数组$tags的第二个元素

if(count($tags)>3) $PageNo = intval($tags[2]);

}else{

$tag = "";

}

$tag = urldecode($tag); //对变量$tag做URL解码处理,%27解码后就成了“’”

//如果没有Tag或Tag不合法,显示所有Tag

if($tag=="" || $tag!=addslashes($tag) ){ //如果$tag为空或有’、"、等字符则执行

$dlist = new TagList($tag,’tag.htm’); //创建类TagList的实例,$tag传给其构造函数,此时$tag可能包含“’”

}

//如果有Tag,显示文档列表

else{

$dlist = new TagList($tag,’taglist.htm’);

}

类TagList相关代码:(./include/inc_taglist_view.php)

class TagList

{

..

var $Tag;

..

//php5构造函数

function __construct($keyword,$templet) //$keyword=$tag

{

..

$this->Tag = $keyword; //$this->Tag=$tag

..

if($this->Tag!=’’)

{

$this->TagInfos = $this->dsql->GetOne("Select * From `cms_tag_index` where tagname like ’{$this->Tag}’ "); //查询执行,漏洞产生!

}

以上就是代码的分析,可能说得不太清楚,这样的漏洞因为可以使用“'”,所以如果条件可以的话可以直接into file得SHELL。

利用方面大家自由发挥。为了方面我自己写了一个利用程序:

dedeExp.exe

当File_priv为YES并得到了物理路径的时候就可以直接Get the shell了。其中得到物理路径的方法是利用了./include/htmledit/index.php的一个漏洞,我们提交./include/htmledit/index.php?modetype=basic&height[]=toby57就可能得到路径。

如果这样得不到的话,还可利用重新安装漏洞,提交./install/index.php?step=2可以重新安装系统,当然也可以得到物理路径。

因为不能union查询,所以运气差的只有自己Get the hash再破解进后台拿SHELL了。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新漏洞分析学习
    热门漏洞分析学习
    网络安全子分类