绕过方式

1
2
3
4
5
6
7
8
9
10
11
js绕过(前端)
00截断(后端白名单)
MIME绕过(后端白名单)
文件头绕过(后端其他)
点绕过(后端黑名单)
空格绕过(后端黑名单)
.user.ini绕过(后端黑名单)
::$DATA绕过(后端黑名单)
后缀双写绕过(后端黑名单)
.htaccess绕过(后端黑名单)
后缀大小写绕过(后端黑名单)

00截断

1
2
GET型00截断,直接在木马后缀后添加%00(PHP版本<5.3.4)
POST型00截断,在后缀添加%00后,对%00进行URL解码

js前端校验

1
修改文件后缀为服务器白名单的后缀,上传时抓包修改文件后缀为php

MIME绕过

1
修改Content-Type值为白名单的MIME类型

.user.ini绕过

1
2
3
4
使用条件:
1. PHP语言
2. 上传目录下要有可执行的文件
3. 服务器使用CGI/FastCGI模式
1
2
3
4
上传一个无法被解析的木马,通过.user.ini使得当前目录下所有的php文件都包含了木马文件
上传.user.ini文件,文件内容如下:

auto_prepend_file = 恶意文件路径

.htaccess绕过

条件:apache + fastcgi

1
2
3
4
5
6
上传一个无法被解析的木马,通过.htaccess使得木马被服务器识别为脚本可被解析
上传.htaccess文件,文件内容如下:

<FilesMatch "恶意文件路径">
SetHandler application/x-httpd-php
</FilesMatch>