.htaccess文件:
以下关于htaccess内容来自百度
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
Unix、Linux系统或者是任何版本的Apache Web服务器都是支持.htaccess的,但是有的主机服务商可能不允许你自定义自己的.htaccess文件。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
利用方法
方法一
<FilesMatch "test">
SetHandler application/x-httpd-php
</FilesMatch>
通过它调用php解析器去解析文件名,文件名中只要包含"test"这个字符串的任意文件,无论扩展名是什么(没有也行),都会以php的方式来解析
方法二
AddType application/x-httpd-php .png
让.png解析为php文件
内容参考:
https://blog.csdn.net/weixin_46329243/article/details/113091399
https://www.cnblogs.com/feizianquan/p/11109390.html
.user.ini文件:
来自大佬的解释:
比.htaccess用的更广,不管是nginx/apache/IIS,只要是以fastcgi运行的php都可以用这个方法。
php.ini是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:PHP_INI_SYSTEM、PHP_INI_PERDIR、PHP_INI_ALL、PHP_INI_USER。模式为PHP_INI_USER的配置项,可以在ini_set()函数中设置、注册表中设置,再就是.user.ini中设置。
.user.ini是一个能被动态加载的ini文件。也就是说修改了.user.ini后,不需要重启服务器中间件,只需要等待user_ini.cache_ttl所设置的时间(默认为300秒),即可被重新加载。
可以借助.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。
利用方法
.user.ini文件中内容:
GIF89a
auto_prepend_file=1.jpg
在这情况下,所有的php文件执行前都会将1.jpg当做php类型的文件先包含执行一遍。
其中这里的第一行的GIF89a是采用文件幻术头进行绕过
内容参考:
https://blog.csdn.net/silence1_/article/details/100172025
https://wooyun.js.org/drops/user.ini%E6%96%87%E4%BB%B6%E6%9E%84%E6%88%90%E7%9A%84PHP%E5%90%8E%E9%97%A8.html
https://blog.csdn.net/sdb5858874/article/details/80669263