xctf easyupload

easyupload

本题抓包存在黑名单的会xxxx is wicked。几次修改知道有如下黑名单

检查文件内容是否有php字符串
检查后缀中是否有htaccess或ph
检查文件头部信息
文件MIME类型
  • 第一条可用<?= phpinfo();?>绕过
  • 第二点可以通过上传.user.ini以及正常jpg文件来进行getshell,可以参考以下文章.user.ini文件php后门
  • 第三点绕过方式即在文件头部添加一个图片的文件头,比如GIF89a
  • 第四点绕过方法即修改上传时的Content-Type

.user.ini文件

  • 除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录
  • 实际上,除了PHP_INI_SYSTEM以外的模式(包括PHP_INI_ALL)都是可以通过.user.ini来设置的

指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数。而auto_append_file类似,只是在文件后面包含。 使用方法很简单,直接写在.user.ini中:
auto_prepend_file=01.gif 01.gif是要包含的文件。
所以,我们可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell

getshell

某网站限制不允许上传.php文件,你便可以上传一个.user.ini,再上传一个图片马,包含起来进行getshell。不过前提是含有.user.ini的文件夹下需要有正常的php文件

在服务器中,只要是运用了fastcgi的服务器就能够利用该方式getshell,不论是apache或者ngnix或是其他服务器。
这个文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项.

在这里插入图片描述

再上传一个a.jpg,内容为
GIF89a

<?=system('cat /flag');?>

或者一句话马。
在这里插入图片描述
查看上传位置,在uploads/index.php,蚁剑连接flag如下:
在这里插入图片描述

posted on 2022-09-17 16:11  小丑首长  阅读(376)  评论(0编辑  收藏  举报

导航