服务器解析漏洞
IIS解析漏洞
IIS 6. 0
-
新建一个名为“test.asp”的目录,该目录中的任何文件都被ⅡS当做asp程序执行(特殊符号是“/”)
-
第二种是上传名为“test.asp;.jpg”的文件,虽然该文件真正的后缀名是“jpg”,但由于含有特殊符号“;”,仍会被IIS当做asp程序执行。
IIS 7.5
- 上传wen文件名为test.jpg 访问test.jpg/.php
IIS命令执行漏洞
Apache解析漏洞
- 在web目录创建一个1.php.aaa然后访问该文件
aaa无法识别则向左去识别php
因此文件被执行了
Nginx解析漏洞
- 在web目录创建1.jpg
访问1.jpg/1.php
成功访问
Tomcat任意文件上传漏洞
- 抓包
请求方式改为PUT
后面加上test.php
最后加上文件内容
防御方法
IIS6.0防御方法
- 升级ⅡS版本,IIS5.1与7.5均无此漏洞
Apache防御方法
- 不要使用AddHandler,改用SetHandler,写好正则,就不会有解析问题,
<FilesMatch".+.php$">
SetHandler application/x-httpd-php
- 禁止.php.这样的文件执行,
<FilesMatch".+.ph(p【3457】?ltltml).">
Require all denied
Nginx防御方法
- 将php.ini文件中的cgi.fix_pathinfo的值设为0。这样php在解析1.php/1.jpg这样的目录时,只要1.jpg不存在就会显示404.
- 将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions后面的值设为.php。
Tomcat防御方法
- Tomcat任意文件上传漏洞环境较为苛刻,将Tomcat、jdk、php更新。
- 避免开启可通过PUT方式创建JSP文件的功能。