PHPCMS v9 Getshell(Apache)

漏洞文件:phpcms\modules\attachment\attachments.php

后缀检测:phpcms\modules\attachment\functions\global.func.php

关键函数:

Fileext函数是对文件后缀名的提取。
  根据此函数我们如果上传文件名为ddd.Php.jpg%20%20%20%20%20%20%20Php
  经过此函数提取到的后缀还是jpg,因此正在is_image()函数中后缀检测被绕过了。
  我们回到public function crop_upload() 函数中
  if(is_image($_GET[‘file’])== false || strpos($_GET[‘file’],’.php’)!==false) exit();
  在经过了is_image的判断之后又来了个.php的判断,在此程序员使用的是strpos函数
  这个函数是对大小写敏感的函数我们使用.Php就可以直接绕过了。
  经过上边的两层的过滤我们的ddd.Php.jpg%20%20%20%20%20%20%20Php后缀依然有效。
  最后$basename变量的值就为ddd.Php.jpg%20%20%20%20%20%20%20Php 然后使用file_put_contents函数写入到了指定目录。
  看见ddd.Php.jpg%20%20%20%20%20%20%20Php这个后缀,大家应该明白了,它用在apache搭建的服务器上可以被解析。

exp:

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录