DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)
这篇文章主要介绍了DedeCMS 5.7 sp1版本中的一个远程文件包含漏洞(CVE-2015-4553),该漏洞图文并茂,具有详细的介绍和参考借鉴价值。
一、漏洞描述
此漏洞存在于/install/index.php(以及index.php.bak文件)中,由于$$符号使用不当导致变量覆盖,进而引发远程文件包含漏洞。
二、影响版本
该漏洞影响DedeCMS小于5.7-sp1版本,包括5.7 sp1版本。
三、漏洞环境搭建
为了复现此漏洞,需要下载DedeCMS V5.7 SP1并将其放置在phpstudy环境下的目录下。然后通过浏览器访问指定的URL来启动环境。环境搭建完成后,即可进行漏洞复现。
四、漏洞复现
查看/install/index.php源码,发现存在变量覆盖漏洞。源码中的一段代码会将传入的参数进行变量覆盖。通过浏览器访问特定URL并传入特定参数,可以实现变量覆盖。
接下来,尝试通过变量覆盖重装网站。由于安装锁的存在,无法继续重新安装,需要删除安装锁文件。浏览代码时,发现一段包含/data/admin/config_update.php文件的代码,该文件中定义了变量updateHost。
我们可以结合变量覆盖漏洞进行远程文件包含操作。由于$updateHost变量是从外部引入的,不能直接进行覆盖,因此需要先清空config_update.php文件再进行包含。这里可以利用fopen函数和fwrite函数来实现。通过变量覆盖,将$s_lang设置为不存在的文件名,$install_demo_name指向config_update.php文件的路径,同时将$step设置为11,以达到清空config_update.php的目的。
DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)之旅
你是否曾经遇到过需要通过特定路径访问某个网站的情况?今天我们将带你深入了解DedeCMS 5.7 sp1版本中的一个安全隐患——远程文件包含漏洞。通过这个漏洞,我们可以利用一些技巧绕过网站安装检查,甚至上传自己的文件。
在开始之前,让我们先构造一个payload,访问特定:
要绕过这个条件,我们可以通过变量覆盖漏洞构造一个不存在的文件。这里的$insLockfile变量可以被我们构造成任意不存在的文件。于是,我们的payload变为:
当我们访问这个链接时,可以看到config_update.php文件已经被变成一个空文件,大小为0kb。这意味着我们已经成功地清空了该文件的内容。接下来,我们就可以控制updateHost参数,开始远程文件包含上传我们想要的文件了。
在kali系统上,我们创建一个名为dedecms的文件夹,并在其中创建一个名为demodata.gb2312.txt的文件,写入代码,然后开启web服务。接下来,我们需要构造一个新的payload,将install_demo_name改为要上传的路径,updateHost改为远程目标机的IP。Payload如下:
当我们浏览器访问这个链接时,如果出现界面说明写入成功。那么我们就可以去查看是否上传成功。如果成功,我们就可以通过浏览器访问我们上传的shell.php文件了。
以上就是长沙网络推广给大家介绍的DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)。希望对大家有所帮助。如果你有任何疑问,欢迎留言给我,我会及时回复大家的。感谢大家对狼蚁SEO网站的支持!如果你认为本文有帮助,欢迎转载,请注明出处,谢谢!
编程语言
- DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)
- jQuery中DOM操作原则实例分析
- php使用composer常见问题及解决办法
- php简单日历函数
- 使用BootStrap进行轮播图的制作
- PHP原生函数一定好吗?
- javascript 正则表达式去空行方法
- PHP使用redis实现统计缓存mysql压力的方法
- ASP.NET中 PlaceHolder 控件的使用方法
- 解析php 版获取重定向后的地址(代码)
- PHP多进程简单实例小结
- Lumen timezone 时区设置方法(慢了8个小时)
- PHPMailer ThinkPHP实现自动发送邮件功能
- javascript中Date()函数在各浏览器中的显示效果
- jQuery简单实现列表隐藏和显示效果示例
- 详解PHP队列的实现