第一关–前端js绕过
1.上传php文件,发现用bp抓不到包,证明数据包没出前端就被拦截。
2.可上传一个代码允许的文件,绕过前端后,利用bp将类型改为php即可
第二关–content-Type绕过
1.通过代码审计可以得知代码用来区分是否可以上传的文件类型主要靠content-Type

2.因此先上传一个php文件,再bp中将content-type修改为代码中所述类型,或者如果看不懂代码
可以先上传一个jpg(允许的类型),将包中content-type复制下来,粘贴到php的包中即可
第三关–特殊后缀绕过(php3,php5)
1.拓展知识,在一些配置下,php3.5.7等均可以php的方式解析
2.若不能解析:
方法1.在apache配置文件中找到addtype application/ x-httpd-php 这句话并在后面加入php3,5等,若是还不行,就找php版本后缀为ts的重新配置
方法2.在配置文件找不到这句话,则看”多觉少梦“的”phpstudy的apache服务器无法解析运行以.php5,.phtml等非.php后缀的文件的解决方法“
3.操作,将后缀修改并上传连接蚁剑
第四关–.htaccess绕过
1.由提示可知,无法使用php3等方式绕过,但未禁止.htaccess文件
2..htaccess文件为局部配置文件,修改即可生效,无需重启apache
3.编写.haccess文件--AddType application /x-httpd-php .jpg(以解析php'的方式解析jpg文件)
4.操作:先上传.htaccess文件,然后上传.jpg文件(由php文件改后缀而来,或者在页面打开终端,输入copy 1.php + 111.jpg/b 000.jpg也可以得到含木马的照片)
5.如果.htaccess文件上传无法连接,说明配置文件中不允许.htaccess文件来覆盖或修改配置---解决方法:打开httpd-conf
文件,搜索AllOverride 并将其后面的none改为ALL即可

第五关–user.ini绕过
前置知识
user.ini
作用:特定于用户或特定目录的配置文件,通常位于Web·程序的根目录下。它用于覆盖或追加全局配置文件(如·php.ini)中的·PHP·配置选项。
作用范围:存放该文件的目录以及其子目录
优先级:较高,可以覆盖php.ini
生效方式:立即生效
php.ini
作用:存储了对整个·PHP·环境生效的配置选项。它通常位于·PHP·安装目录中
作用范围:所有运行在该·PHP·环境中的·PHP·请求
优先级 :· 较低
生效方式:重启php或web服务器**加粗样式**
.htaccess
作用 : 分布式配置文件,一般用于URL·重写、认证、访问控制等
作用范围:特定目录(一般是网站根目录)及其子目录
优先级:较高,可覆盖Apache·的主要配置文件(httpd-conf)
生效方式:修改后立刻生效
httpd-conf
作用:包含Apache·HTTP·服务器的全局行为和默认设置
作用范围:整个服务器
优先级:较低
加载方式:会首先加载·php.ini/httpd-conf·文件中的配置。
然而,如果在某个目录下存在 ·. user.ini/.htaccess·文件,
服务器会在处理请求时检查该目录,并覆盖相应的配置项。←
.user.ini 可以生效的前提:
最好大于5.3.0,最好是用7.X版本的
Server·API·为CGI/FastCGI ------- Phpinfo()查看 Server·API企
(Server·API(Application·Prog