上题一样,修改为png后缀,抓包绕过js校验,修改后缀名发现可以使用
php3 php5 phphtml
特殊后缀名,但是中间件是nginx
,这里要使用.user.ini
文件来进行构造,具体原理看参考文章,与.htaccess
类似php.ini是php的一个全局配置文件,对整个web服务起作用;而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,通常用这个文件来构造后门和隐藏后门。
先来看下怎么构造
.user.ini
,这两个选项就类似文件包含,只要当前目录下有.php
文件,默认会把包含的文件插入到.php
文件头/文件尾上,当文件尾后面有exit
时,会停止程序auto_prepend_file = <filename> //包含在文件头
auto_append_file = <filename> //包含在文件尾
因为可以利用文件包含,这里我们先上传一个图片马
- 访问下
/upload
目录下,发现刚好有个index.php
,不用自己上传了 - 上传
.user.ini
目录配置文件,为了避免出错,把包含ma.png
添加到文件头位置 - 访问
/upload/index.php
,利用工具rec即可
参考文章: