web基础漏洞-文件上传漏洞基于中间件
1、Apache解析漏洞
Apache是从右往左进行文件后缀解析的.形如文件名为aa.bb.cc.dd的文件,Apache先识别dd,识别不出的话就识别cc,直到能识别为止.
利用方式:上传名为xx.php.abc文件.后缀为abc可以通过服务器黑名单检测.Apache识别不出.abc后缀,就向前找,能识别php后缀,因此将文件解析为php文件.
2、IIS6.0解析漏洞
IIS服务器配套的是asp脚本文件.IIS6.0可以正常解析.asp .asa .cer .cdx后缀的文件.
前提:IIS5.x或6.0版本
漏洞1:如果目录以.asp .asa .cer .cdx结尾,那么这个目录下所有文件都会被当做asp格式去解析.
漏洞2:当文件名中包含 .asp; .asa; .cer; .cdx; 时,此时服务器会忽略文件后缀,全部当做asp文件解析.
原因是IIS服务器默认不解析;及其后面的内容,相当于截断.
3、Nginx和IIS7.0/7.5解析漏洞
前提:Nginx8以下版本,IIS7.0/7.5版本
绕过方式:上传文件为xx.jpg,访问xx.jpg/x.php,此时xx.jpg就会被解析为php文件.
4、apache .htaccess文件重写
- .htaccess是Apache服务器的一个配置文件,作用是可以自定义404页面,允许/阻止用户访问特定的目录等.该文件可作用于当前目录及其子目录.
- 在.htaccess文件中写入特定代码,可以使文件名中包含特定字符的文件被当做php文件来解析而不考虑文件后缀.
- 前提:Apache的httpd.conf中AllowOverride=All
- 特征:如果服务器是黑名单检测的话,通常会禁用php等脚本文件,不一定会禁用.htaccess文件.
- 绕过方式:先上传.htaccess文件,再上传一个文件名符合.htaccess特定代码的jpg文件,服务器会将jpg文件当做php文件来解析执行.