欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx错误配置导致的漏洞学习

程序员文章站 2022-07-15 14:11:42
...

环境准备:
1.安装编译工具及库文件,安装PCRE,PCRE作用是让Nginx支持Rewrite功能。

yum -y install make zlib zlib-devel gcc c++ libtool openssl openssl-devel

cd /usr/local/src
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
chmod -R 777 /usr
tar -zxvf pcre-8.35.tar.gz 
cd pcre-8.35/
 ./configure
make && make install

Nginx错误配置导致的漏洞学习

2.nginx下载安装

#下载编译安装nginx
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar -zxvf nginx-1.6.2.tar.gz 
cd nginx-1.6.2/
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35	
make 
make install
/usr/local/webserver/nginx/sbin/nginx -v

#Nginx配置
#创建Nginx运行使用的用户www: 在conf路径下
cd /usr/local/webserver/nginx/conf
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www

#检查配置文件nginx.conf的正确性命令;
#在conf路径下
/usr/local/webserver/nginx/sbin/nginx -t

#Nginx启动:
#在conf路径下
/usr/local/webserver/nginx/sbin/nginx 

Nginx错误配置导致的漏洞学习Nginx错误配置导致的漏洞学习

docker安装

yum update
#更新源

yum remove docker docker-common docker-selinux docker-engine
#卸载旧版本docker

yum install -y yum-utils device-mapper-persistent-data lvm2
#安装所需的软件包,util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

#一键安装docker
curl -sSL https://get.daocloud.io/docker | sh


wget https://get.docker.com/gpg
rpmkeys --import ./gpg

Centos安装docker出错,使用Ubuntu的docker

1.CRLF注入漏洞

环境搭建:

cd /nginx/insecure-configuration
docker-compose build
docker-compose up -d

漏洞原理:
错误的配置导致Nginx会将传入的$uri进行解码,导致传入%0d%0a即可引入换行符,导致CRLF注入漏洞。
错误配置图片
Nginx错误配置导致的漏洞学习
漏洞利用

payload

curl -v 127.0.0.1:8080/%0d%0atest=777

Nginx错误配置导致的漏洞学习漏洞修复

$uri改为$request_uri

2.目录穿越漏洞

漏洞原理

Nginx错误配置导致的漏洞学习当错误配置为/files时,构造payload: /files …/ 运行后就成了/…/。这样就返回了上一级目录的所有内容,造成了目录穿越漏洞。

漏洞利用

Nginx错误配置导致的漏洞学习漏洞修复:
Nginx错误配置导致的漏洞学习Nginx错误配置导致的漏洞学习重启docker,配置文件生效。当用户构造/files../时,会被解析成/files..//文件不存在,返回404页面。

3.add_header被覆盖

漏洞原理

Nginx错误配置导致的漏洞学习

漏洞复现:

Nginx错误配置导致的漏洞学习

漏洞修复

删除test2中的add_header X-Content-Type-Options nosniff;

参考文章:vluhub文章



关于CSP的学习

:设置Content-Security-Policy响应头启用所需的CSP策略

Content-Security-Policy: default-src ‘self’; img-src *;
                         object-src *.cdn.***.com;
                         script-src scripts.***.com;

该策略默认只允许资源从同一来源加载,但允许图像从任何URI加载,插件内容只从指定的CDN地址加载,外部脚本仅从scripts.***.com加载

相关标签: web中间件