nginx解析漏洞,配置不当,目录遍历漏洞复现
1.Ubuntu14.04安装nginx-php5-fpm
安装了nginx,需要安装以下依赖
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g.dev
sudo apt-get install libssl-dev
安装php:
apt-get install php5-fpm
apt-get install nginx
开启Nginx对php的支持,去掉配置文件中关于php的注释并重启Nginx即可
vim /etc/nginx/sites-available/default
nginx网站目录
/usr/share/nginx/html
nginx解析php
nginx无法启动可以查看日记查找解决方法
vim /var/log/nginx
访问php文件403
在/etc/php5/fpm/pool.d/www.conf中编辑
listen = /var/run/php5-fpm.sock为127.0.0.1:9000
在/etg/nginx/sites-available/**.conf中编辑
fastcgi_pass/var/run/php5-fpm.sock为127.0.0.1:9000
后重启nginx,php5-fpm即可
重启服务命令
service php5-fpm restart
service nginx restart
2.Nginx的文件解析漏洞复现
如果在访问test.jpg这个文件时以这种去访问/test.jpg/1.php,可能会被当做PHP代码去执行
用户配置不当造成的解析漏洞。 我们现在进行不当配置实现解析漏洞
vim /etc/php5/fpm/php.ini
修改cgi.fix_pathinfo为1
vim /etc/php5/fpm/pool.d/www.conf
修改security.limit_extensions允许解析其他格式文件为PHP
3.Nginx目录遍历漏洞
vim /etc/nginx/sites-available/default
在location这里加上
autoindex on;
4.nginx目录穿越漏洞
Nginx在配置别名(Alias)的时候,如果忘记加/,将造成一个目录穿越漏洞。
错误的配置文件示例(原本的目的是为了让用户访问到/home/目录下的文件):
location /files {
alias /home/;
}
==遇到的坑==
5.Docker为什么刚运行就退出了
docker run -d -p 80:80 ubuntu
运行了一个简单的容器后,然后docker ps -a 进行查看, 会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的
这个是docker的机制问题,比如你的web容器,我们以nginx和fpm为例,
正常情况下,我们配置启动服务只需要启动响应的service即可,例如
service nginx start && service php5-fpm start
但是,这样做,nginx和fpm均为后台进程模式运行,就导致docker前台没有运行的应用,
这样的容器,后台启动后,会立即自杀,因为他觉得他没事可做了.
解决方法:
1.最佳的解决方案是,将你要运行的程序以前台进程的形式运行,当然,如果你的容器需要同时启动多个进程,
那么也只需要,或者说只能将其中一个挂起到前台即可.
比如上面所说的web容器,我们只需要将启动指令修改为:
service php5-fpm start && nginx -g "daemon off;"
这样,fpm会在容器中以后台进程的方式运行,而nginx则挂起进程至前台运行,这样,就可以保持容器不会认为没事可做而自杀了.
2.对于有一些你可能不知道怎么前台运行的程序,提供一个投机方案,你只需要在你启动的命令之后,
添加类似于 tail top 这种可以前台运行的程序,这里特别推荐 tail ,然后持续输出你的log文件.
还是以上文的web容器为例,我们还可以写成:
service nginx start && service php5-fpm start && tail -f /var/log/nginx/error.log
把这条命令加到start.sh实现自启
参考链接
https://www.jianshu.com/p/13d5912a6417
https://blog.csdn.net/qq_32434307/article/details/79480036
https://blog.csdn.net/wang_quan_li/article/details/48003811
https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/