美文网首页
Nginx解决Host头注入

Nginx解决Host头注入

作者: 小左伯爵 | 来源:发表于2020-11-17 22:36 被阅读0次
    • Host 头指的是 HTTP Header 中的 Host 项,在开发 WEB 应用时,为了方便的获得网站域名,开发人员可能会直接使用该值带入到应用上下文中,如果该值可以被攻击者控制,且 web server 没有对 host header 进行校验,则可能导致部分安全问题。

    1.测试软件安装破解

    链接:https://pan.baidu.com/s/1ZwjrwNG-T5YB_IwKJThiDA
    提取码:5r98

    2020-11-17_203710.jpg
    点击Manual activation
    2020-11-17_204106.jpg
    然后一路next

    2.设置google浏览器代理

    设置->高级->打开您计算机的代理设置


    2020-11-17_204855.jpg

    设置地址127.0.0.1
    端口:1080

    3.设置Burp Suite

    2020-11-17_205136.jpg
    2020-11-17_205407.jpg

    此处的地址和ip设置和步骤2中的浏览器设置相同即可

    4.Host头注入现象

    #未作修改的nginx配置,此配置会产生Host头注入问题
    upstream web {
     server 192.168.52.22:9092;
     server 192.168.52.23:9093;
    }
    
    server {
            listen       8082;
            server_name  192.168.52.22;
         
            location / {
              proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header REMOTE-HOST $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_pass http://web;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }                       
    

    在浏览器输入相应地址,在测试软件中选中这条路径


    2020-11-17_222723.jpg

    此时Host为 192.168.52.22:8082点击Go可以收到正确响应


    2020-11-17_223106.jpg
    但是改变Host为aaaa 仍然能收到正确响应,
    2020-11-17_223246.jpg

    这即为Host头注入
    下面修改nginx配置文件

    #修改后的nginx配置
    upstream web {
     server 192.168.52.22:9092;
     server 192.168.52.23:9093;
    }
    
    server {
            listen       8082;
            server_name  192.168.52.22;
            set $flag 0;
            if ( $host = "192.168.52.22"){
               set $flag 1;
            }
            if ( $flag = 0){
               return 233;
            }
            location / {
              proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header REMOTE-HOST $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_pass http://web;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }                       
    

    此时修改Host:aaaa发现返回233


    2020-11-17_223707.jpg

    Host头注入问题解决

    相关文章

      网友评论

          本文标题:Nginx解决Host头注入

          本文链接:https://www.haomeiwen.com/subject/lpefiktx.html