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/

nginx解析漏洞,配置不当,目录遍历漏洞环境搭建、漏洞复现的更多相关文章

  1. Redis配置不当致使root被提权漏洞

    Redis配置不当致使root被提权漏洞 Dear all~ 最近Redis服务被曝出因配置不当,可能造成数据库被恶意清空,或被黑客利用写入后门文件造成进一步入侵,请关注! 一.漏洞发布日期 2015 ...

  2. Nginx 服务器伪静态配置不当造成 Access denied

    Nginx 服务器伪静态配置不当造成 Access denied 有群有反馈将 FastAdmin 布署到阿里云后无法打开后台. 出现如下提示,首页是可以打开,点登录链接后出现的.(下是群友的截图) ...

  3. spark-windows(含eclipse配置)下本地开发环境搭建

    spark-windows(含eclipse配置)下本地开发环境搭建   >>>>>>注意:这里忽略JDK的安装,JDK要求是1.8及以上版本,请通过 java  ...

  4. Nginx安装及配置详解包括windows环境

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  5. 一步一步 Pwn RouterOS之调试环境搭建&&漏洞分析&&poc

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文分析 Vault 7 中泄露的 RouterOs 漏洞.漏洞影 ...

  6. Nginx:解析HTTP配置的流程

    参考资料:深入理解Nginx(陶辉) 书中有详细的讲解,这里只用本人的理解梳理一下该流程. 一点提议:对于像我这样的新手,面对暂时看不懂章节,建议先往下看一下(可能就会有新的理解或灵感),而不要死磕在 ...

  7. CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手冊)

    今天,又一次弄我的个人云主机的环境.准备运营自己用Java写的个人官网等站点. 服务器环境:阿里云CentOS 6.4位 包含以下脚本在内的绝大部分命令和脚本,都是我亲自运行过,靠谱的. 完整的&qu ...

  8. CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)

    今天,重新弄我的个人云主机的环境,准备运营自己用Java写的个人官网等网站. 服务器环境:阿里云CentOS 6.4位 包括以下脚本在内的绝大部分命令和脚本,都是我亲自执行过,靠谱的. 完整的&quo ...

  9. Hadoop伪分布配置与基于Eclipse开发环境搭建

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  10. 一. IntelliJ IDEA详细配置文档之初始环境搭建

    前言 对于用惯了eclipse的同学来说, 突然切换为idea不是一件那么容易的事情, 所以我会发布一系列只讲解idea使用技巧的文章, 请大家多多关注.  本系列文章的配置参考网上某教程的讲解, 本 ...

随机推荐

  1. Keepalived 实现双机热备

    原理 首先有一个虚拟ip暴露给客户端,虚拟ip对应的mac地址为一台真实服务器, 即用户向虚拟ip发送一个请求,该请求会被分发到真实服务器上. 现在有2台真实服务器,一台master,一台backup ...

  2. Git学习文档——文件状态git status

    1.已经跟踪的文件有三种状态 已跟踪的文件,即被纳入版本控制的文件,又分为未修改(unmodified).已修改(modified).已暂存(staged)三种状态. 如图: 当在工作目录中新加入一个 ...

  3. BZOJ3786:星系探索(Splay,括号序)

    Description 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球.主星球 ...

  4. 【转】合格PHP工程师的知识结构

    PHP的运行环境 连环境都搞不起来,就是你有多么喜欢PHP,那也是白搭,开始我们大多会使用集成环境软件例如xampp,wamp.随着知识的增加慢慢要学会自己搭建运行环境,例如 Linux(Ubuntu ...

  5. Day3JavaScript(一)JavaScript初识以及bom操作

    JavaScript简介 什么是JavaScript 弱类型,动态类型,基于原型的直译性的编程语言.1995年netscape(网景)在导航者浏览器中设计完成. JavaScript的特点 1.与HT ...

  6. [Java123] JavaBean

    https://stackoverflow.com/questions/3295496/what-is-a-javabean-exactly A JavaBean is just a standard ...

  7. mongodb的学习-5-概念解析

    http://www.runoob.com/mongodb/mongodb-databases-documents-collections.html mongodb中基本的概念是文档.集合.数据库 S ...

  8. mysql太多连接问题及解决方案

    不管是JavaEE开发还是其他,只要是Linux系统下安装的mysql,通常默认最大连接为270. 如果你的客户端连接超过这个数,通常要么是配置文件修改,或者是命令行修改,配置文件修改和命令行修改的区 ...

  9. Kafka设计解析(十七)Kafka 0.11客户端集群管理工具AdminClient

    转载自 huxihx,原文链接 Kafka 0.11客户端集群管理工具AdminClient 很多用户都有直接使用程序API操作Kafka集群的需求.在0.11版本之前,kafka的服务器端代码(即添 ...

  10. POJ3268(Dijkstra_邻接矩阵)

    https://vjudge.net/problem/POJ-3268 题目大意: n个农场的n头奶牛将前往x农场,要选择一条来回时间最短的路径. (一头牛的返回路线可能不同于她最初去派对的路线,因为 ...