1. 上题一样,修改为png后缀,抓包绕过js校验,修改后缀名发现可以使用php3 php5 phphtml特殊后缀名,但是中间件是nginx,这里要使用.user.ini文件来进行构造,具体原理看参考文章,与.htaccess类似

      php.ini是php的一个全局配置文件,对整个web服务起作用;而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,通常用这个文件来构造后门和隐藏后门。

    2. 先来看下怎么构造.user.ini,这两个选项就类似文件包含,只要当前目录下有.php文件,默认会把包含的文件插入到.php文件头/文件尾上,当文件尾后面有exit时,会停止程序

      1. auto_prepend_file = <filename> //包含在文件头
      2. auto_append_file = <filename> //包含在文件尾
    3. 因为可以利用文件包含,这里我们先上传一个图片马
      image-20210716133035233.png

    4. 访问下/upload目录下,发现刚好有个index.php,不用自己上传了
    5. 上传.user.ini目录配置文件,为了避免出错,把包含ma.png添加到文件头位置
      image-20210716133549520.png
    6. 访问/upload/index.php,利用工具rec即可
      image-20210716133951371.png

    参考文章:

    .htaccess和.user.ini配置文件妙用