• 浅谈nginx


        以nginx为例子,nginx现在企业都用,测试版本1.12.0

       example1:

        nginx.conf:

        location /flag/ {
            deny all;
            return 403;
        }
        location /baidu/ {
            proxy_pass http://baidu.com;
        }
        
        location /qq {
            proxy_pass http://qq.com;
        }

      重启生效:

      测试访问:

      http://119.45.227.86:8080/flag/

      

     直接403拦截:

      输入不存在目录:

      

      仍然显示拦截,遇到这种情况,最好的解决方法就是不要递归爆破这个目录了,大概率无用功,不要浪费时间在这里.

      想要访问目录,需要代理转发到tomcat容器,那么可以使用..;/

      例如这样:

      

      example2:

        

        location /baidu/ {
            proxy_pass http://baidu.com;
        }
        
        location /qq {
                    proxy_pass http://qq.com;
            }
        
        location /flag/read {
            proxy_pass http://119.45.227.86/readfile/test2.php;
        }

      访问http://119.45.227.86:8080/flag/

      

    访问不存在的目录:

      

     这种情况就值得目录爆破,目录爆破极有可能存在东西:

      

      假设已经被入侵,存在某个漏洞,但是暂时无法从代码层修复,那么需要缓解措施?

      缓解措施两个保证(1)保证部分用户能访问 (2)杜绝外部ip访问

      修改nginx.conf:

        

        location /baidu/ {
            proxy_pass http://baidu.com;
        }
        
        location /qq {
                    proxy_pass http://qq.com;
            }
        
        location /flag/read {
            proxy_pass http://119.45.227.86/readfile/test2.php;
            allow 外部信任ip;
            deny all;
        } 

      burp挂上外部代理访问:

      

    使用信任ip访问,取消外部代理:  

      

     被信任的ip被访问到

      怎么判断是否是nginx:

      (1)安装插件:

      

      (2)通过http请求标识符:

       

       (3)全部隐藏了怎么办?

      通过网页跳转等手段:

      nginx大多数基于正则表达式:

      example:

      

        location /baidu/ {
            proxy_pass http://baidu.com;
        }
        
        location /qq {
                    proxy_pass http://qq.com;
            }
        
        location /flag/read {
            proxy_pass http://119.45.227.86/readfile/test2.php;
            allow 222.72.216.6;
            deny all;
        }    

      访问/qq:

      

       qq后面跟任意字符串:

      如果仍然可以跳转,说明是nginx,因为他基于规则匹配到了qq,所以跳转到了qq.com

      

      其实nginx限制的手段有很多,有基于ip的,也有基于浏览器的,需要额外关注,本人简单记录下,挺有意思的呵呵,对极端漏洞挖掘情况下,nginx的防护绕过,是有可行性的,有机会聊聊实战案例

      参考文章:https://www.acunetix.com/blog/articles/a-fresh-look-on-reverse-proxy-related-attacks/

     

       

  • 相关阅读:
    API Hook完全手册
    ASP.NET页面刷新的实现方法
    ASP.NET验证码
    ASP.NET优化性能的方法
    Asp.net中Server.Transfer,Server.Execute和Response.Redirect的区别
    FireFox新标签页打开搜索和书签
    win10里如何在中文输入法里添加美式键盘
    Sublime Text 3中文乱码问题解决
    Win2008 r2 IIS7.5出现“FastCGI进程最近常常失败。请过一会再尝试此请求”的解决方法
    Sublime Text 3中设置不记住上次打开的文件
  • 原文地址:https://www.cnblogs.com/piaomiaohongchen/p/15294175.html
Copyright © 2020-2023  润新知