nginx配置不当容易产生的安全问题
nginx一般用于做外网代理,配置也比较方便,但是配置不当的时候会产生一些安全问题。其中包括各个大厂也都出现过。
intra server -> proxy -> nginx
一般正常的流程是这样的
内网的集群或机器不直接连接外部,nginx做个proxy代理透出传递互联网。
如果nginx配置不当,或者nignx default_server没有配置或者配置内网,那么小心内网业务将被透传出去。
nginx 的 default_server 指令可以定义默认的 server 去处理一些没有匹配到 server_name 的请求,如果没有显式定义,则会选取第一个定义的 server 作为 default_server
也就是说nginx如果没配置default_server,那么nginx会默认找一个a-z的域名进行匹配的,这个是nginx的默认规则,如配置default_server为内网的业务,那么nginx也会默认使用。
nginx 批量载入配置 conf 时会按 ascii 排序载入,这就会以 server_a.conf server_b.conf server_c.conf 的顺序载入,如果没有声明 default_server 的话,那 server_a 会作为默认的 server 去处理 未绑定域名/ip 的请求
之前fofa沙龙中的分享也提到了,比如办公网透传host绑定外网即可漫游的情况。
引用图片:
参考链接:
http://r3start.net/wp-content/uploads/2019/08/2019080916135087.pdf 议题PPT
https://github.com/baimaohui-net/Hosts_scan host碰撞脚本
https://segmentfault.com/a/1190000015681272 关于nginx default_server问题
【版权所有@Sevck 博客地址http://www.cnblogs.com/sevck】 可以转载,注明出处.