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. #006 dependencies和devDependencies的区别

    dependencies 和 devDependencies 区别 在 npm 中的 package.json ,有两种插件的依赖包配置形式。 dependencies 和 devDependenci ...

  2. jQuery 和 YUI (Yahoo User Interface) 各自的优缺点有哪些?具体的使用场景是怎样的?

    张经纬,前端工程师 知乎用户.赵勇杰.知乎用户 等人赞同 其实jQuery和YUI的侧重点是不一样的. jQuery专注于DOM的操作,他通过继承的方式给传入的对象增加了新的方法,从而使我们可以通过链 ...

  3. Yii安装使用教程(转)

    Yii 是一个基于组件的高性能 PHP 框架,用于快速开发大型 Web 应用.它使Web开发中的 可复用度最大化,可以显著提高你的Web应用开发速度.Yii 这个名字(读作易(Yee) 或 [ji:] ...

  4. Sequelize-nodejs-1-getting started

    Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL, ...

  5. docker常用命令(二)

    把镜像保存到本为一个文件 docker save -o filename.tar imagename:tag 载入保存在本地的镜像 docker load < filename.tar 或者 d ...

  6. c++——const关键字

    1 const基础知识(用法.含义.好处) int main() { const int a; int const b; const int *c; int * const d; const int ...

  7. POJ 2251 Dungeon Master(多层地图找最短路 经典bfs,6个方向)

    Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 48380   Accepted: 18252 ...

  8. PCB布线经验

      查看: 3645|回复: 11    [经验] PCB设计经验(1)——布局基本要领 [复制链接]     ohahaha 927 TA的帖子 0 TA的资源 纯净的硅(中级) 发消息 加好友 电 ...

  9. CPP strcat函数使用

    strcat函数原型 char * strcat ( char * destination, const char * source ); strcat常见写法 // main.cpp // 字符数组 ...

  10. CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...