一、
(1)
线上收到一个crlf 注入的漏洞. 同时启用80和443才会暴露,配置如下:
server {
listen 80;
listen 443 ssl;
server_name www.jyall.cn;
access_log /data/log/nginx/www.jyall.cn.access.log ngx_main;
error_log /data/log/nginx/www.jyall.cne.error.log;
charset utf-8;
underscores_in_headers on;
ssl_certificate ssl/www.jyall.cn-2019-12-13.crt;
ssl_certificate_key ssl/www.jyall.cn-2019-12-13.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
set $rewrite_status 0;
if ($https_status = off) {
set $rewrite_status "${rewrite_status}1";
}
if ($scheme = http) {
set $rewrite_status "${rewrite_status}2";
}
if ($https = on) {
set $https_status $https;
}
if ($rewrite_status = 012) {
rewrite / https://$host$request_uri permanent;
break;
}
location / {
allow 0.0.0.0/24;
deny all;
proxy_pass http://www.baidu.com;
}
location /test {
default_type application/json;
return 200 '{"status":"success","result_https":$scheme-$server_name$request_uri}';
}
}
(2)
rewrite / https://$host$uri permanent; 改成 rewrite / https://$host$request_uri permanent; 就可以解决。