dedecms_v5.7的apache文件名解析漏洞的学习

时间:2023-03-09 06:52:41
dedecms_v5.7的apache文件名解析漏洞的学习

0x00 Apache文件名解析漏洞

Apache是一个Web服务器,可以提供web服务、配合java中间件、PHP实现动态页面访问。

Apache和PHP通过接口接入后,Apache接受用户的请求,并将请求传送给php.exe,php.exe程序执行完毕后,把结果发送给用户。在Apache将文件内容交给PHP的时候,Apache会从右到左对文件名进行判断,确保只有.php的后缀文件得到解析,当文件名是demo.php.bak时,按照httpd.conf中的定义,.bak是不可识别的文件后缀,那么Apache会提取.bak左边的后缀.php,判断PHP是否可以识别,来识别文件程序执行。注意:当Apache和PHP以fastcgi方式结合时,则不存在该问题。

例如:访问phpinfo.php可以正常显示,那么一旦存在Apache文件解析漏洞,将phpinfo.php文件重命名为phpinfo.php.bak,再在浏览器访问phpinfo.php.bak,是和访问phpinfo.php出现一样的界面。这是因为.bak是Apache无法识别的后缀。

0x01 dedecms的重装漏洞

虽然dedecms重装漏洞是在很早之前的了,但还是学习一下。

这里是以Apache2.2.17为例的。

在将dedecms安装完成后,会在install目录下生成一个index.php.bak文件。

直接访问index.php.bak是无法成功的,因为有着install_lock.txt文件的限制,所以需要突破限制。

虽然我们没有文件操作的权限,但是可以在浏览器通过变量覆盖来实现。

构造payload:

http://127.0.0.1/install/index.php.bak?insLockfile=123

之后就可以获取网站的控制权限了。