003_crlf注入漏洞

 

一、

(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; 就可以解决。

 

posted @ 2018-05-23 19:53  arun_yh  阅读(255)  评论(0编辑  收藏  举报