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
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
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注入漏洞。
错误配置图片
漏洞利用
payload
curl -v 127.0.0.1:8080/%0d%0atest=777
漏洞修复
将$uri改为$request_uri
2.目录穿越漏洞
漏洞原理
当错误配置为/files时,构造payload: /files …/ 运行后就成了/…/。这样就返回了上一级目录的所有内容,造成了目录穿越漏洞。
漏洞利用
漏洞修复:重启docker,配置文件生效。当用户构造/files../时,会被解析成/files..//文件不存在,返回404页面。
3.add_header被覆盖
漏洞原理
漏洞复现:
漏洞修复
删除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加载
上一篇: weblogic
推荐阅读
-
两个由于phpini配置错误导致的报错:ajax图片上传报错和exec报错
-
NGINX服务器配置404错误页面转向的方法
-
duplicate from active dg 的 run 脚本 sfile 为完整配置可能导致的一些错误
-
两个由于php.ini配置错误导致的报错:ajax图片上传报错和exec报错,_PHP教程
-
duplicate from active dg 的 run 脚本 sfile 为完整配置可能导致的一些错误
-
Nginx服务器中配置404错误页面时一些值得注意的地方
-
Laravel 5.5官方推荐的Nginx配置学习教程
-
Nginx worker_connections配置太低导致500错误案例
-
Laravel 5.5官方推荐的Nginx配置学习教程
-
实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法