Nginx常见漏洞处理

1.检测到目标URL存在http host头攻击漏洞【中危】

描述:

为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。

检测:

通过burp进行抓包:
img
img
img

这就说明,可以随意更改报头的Host,请求都可以被执行,返回200,这就有可能被利用,构造恶意的代码传入并执行。

处理:

在Nginx里还可以通过指定一个SERVER_NAME名单,Apache也可以通过指定一个SERVER_NAME名单并开启UseCanonicalName选项

server_name  XXX.XXX.com xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx;
if ( $host !~* 'XXX.XXX.com|xxx.xxx.xxx.xxx|xxx.xxx.xxx.xxx' )
 {
return 403;
 }

img
img

参考:

https://www.cnblogs.com/xidxi/p/14781383.html
https://www.cnblogs.com/huiy/p/13433643.html

2.点击劫持:X-Frame-Options未配置

描述:

点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

检测:

访问页面,F12查看响应头
没有配置X-Frame-Options响应头

处理:

修改web服务器配置,添加X-Frame-Options响应头。赋值有如下三种:
1、DENY:不能被嵌入到任何iframe或者frame中。
2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。
3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
(另外两种配置方式e.g.):

# add_header X-Frame-Options:ALLOW-FROM https://tongji.baidu.com; 
# add_header X-Frame-Options:DENY;

这里一般选择SAMEORIGIN配置,只允许本站页面被嵌入到iframe。
在nginx的server里面配置:

add_header X-Frame-Options "SAMEORIGIN";

再查看页面响应头X-Frame-Options,实现漏洞规避。

参考:

https://www.zhihu.com/question/31785438
https://www.cnblogs.com/xidxi/p/14781383.html

3.检测到目标X-Content-Type-Options响应头缺失

描述:

响应头用来指定浏览器对未指定或错误指定Content-Type资源真正类型的猜测行为,nosniff 表示不允许任何猜测,在通常的请求响应中,浏览器会根据Content-Type来分辨响应的类型,但当响应类型未指定或错误指定时,浏览会尝试启用MIME-sniffing来猜测资源的响应类型,这是非常危险的,例如一个.jpg的图片文件被恶意嵌入了可执行的js代码,在开启资源类型猜测的情况下,浏览器将执行嵌入的js代码,可能会有意想不到的后果。

检测:

访问页面,F12查看响应头
没有配置X-Content-Type-Options响应头

处理:

# add_header X-Content-Type-Options: nosniff; 

如果服务器发送响应头 “X-Content-Type-Options: nosniff”,则 script 和 styleSheet # 元素会拒绝包含错误的 MIME 类型的响应。这是一种安全功能,有助于防止基于 MIME 类型混淆的攻击。
在nginx的server里面配置:

add_header X-Content-Type-Options "nosniff";

img

参考:

https://blog.csdn.net/weixin_41986096/article/details/108319848

4.检测到目标X-XSS-Protection响应头缺失

描述:

HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。 X-XSS-Protection响应头的缺失使得目标URL更易遭受跨站脚本攻击。

检测:

访问页面,F12查看响应头
没有配置X-XSS-Protection响应头

处理:

# 0:# 禁用XSS保护; 
# 1:# 启用XSS保护; 
# 1; # mode=block:启用XSS保护,并在检查到XSS攻击时,停止渲染页面(例如IE8中,检查到攻击时,整个页面会被一个#替换); 
# 浏览器提供的XSS保护机制并不完美,但是开启后仍然可以提升攻击难度,总之没有特别的理由,不要关闭它。

在nginx的server里面配置:

add_header X-XSS-Protection "1; mode=block";

表示若检查到XSS攻击则停止渲染页面
img

参考:

https://www.cnblogs.com/xidxi/p/14781383.html

5.检测到目标Content-Security-Policy响应头缺失

描述:

内容安全策略(Content Security Policy)是一种声明的安全机制,可以让网站运营者能够控制遵循CSP的用户代理(通常是浏览器)的行为。通过控制要启用哪些功能,以及从哪里下载内容,可以减少网站的攻击面。
CSP的主要目的是防御跨站点脚本(cross-ste scripting,XSS)攻击。例如,CSP可以完全禁止内联的JavaScript,并且控制外部代码从哪里加载。它也可以禁止动态代码执行。禁用了所有的攻击源,XSS攻击变得更加困难。
CSP由Mozilla开发,曾经有几年试验过概念,一开始称为内容限制(content restriction),后来改称为内容安全策略。2012年11月CSP 1.0成为W3C的候选议案。
网站通过设置Content-Security-Policy响应头启用所需的CSP策略。

检测:

访问页面,F12查看响应头有没有配置Content-Security-Policy响应头

处理:

#并不限制内容加载来源                                                                                    
add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";                                                                                         
#将本站内部http链接自动改为https,并不限制内容加载来源                                                                                    
#add_header Content-Security-Policy "upgrade-insecure-requests;content *;img-src '*'";
upgrade-insecure-requests CSP 指令的作用就是让浏览器自动升级请求,防止访问者访问不安全的内容。

该指令用于让浏览器自动升级请求从http到https,用于大量包含http资源的http网页直接升级到https而不会报错.简洁的来讲,就相当于在http和https之间起的一个过渡作用.
在nginx的server里面配置:

add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";

img

参考:

http://www.hlcjw.cn/archives/533
https://www.jianshu.com/p/62d7053d1e5d
https://blog.csdn.net/unhejing/article/details/107606615

6.检测到目标Referrer-Policy响应头缺失

描述:
在页面调用图片等其它资源时,或者发生页面跳转时,都会向服务端发生一个带Referrer的HTTP请求,这也是一些网站做防盗链的抓手,在Referrer Policy策略发面前,浏览器可以按自己的默认规则来决定是否加上Referrer。2014年W3C下Web应用安全工作组(Web Application Security Working Group)发布了Referrer Policy草案,对浏览器发送Referrer做了详细规定。在新的Referrer Policy中,可以实现隐藏Referrer,也可以只发送来源URL的host地址(不过不允许伪造)。

检测:

访问页面,查看响应头

处理:

no-referrer 全省略
no-referrer-when-downgrade 协议的安全级别降低时全省略,即HTTPS -> HTTP
strict-origin 协议的安全级别相等时仅发送源,不等时全省略
origin 仅发送源
same-origin 同源时全发送,跨源时全省略
strict-origin-when-cross-origin 同源时全发送,跨源时协议的安全级别相等时仅发送源,不等时全省略
origin-when-cross-origin 同源时全发送,跨源时只发送源
unsafe-url 全发送
在nginx的server里面配置:

add_header 'Referrer-Policy' 'origin';

img
Ps:该配置导致finderweb打不开,修改配置如下:

add_header 'Referrer-Policy' 'strict-origin-when-cross-origin';

即可

参考:

http://www.04007.cn/article/778.html
https://jsweibo.github.io/2020/05/06/HTTP中的Referrer-Policy响应头/
https://blog.csdn.net/wwppp987/article/details/117822609

7.检测到目标X-Download-Options响应头缺失

处理:

add_header X-Download-Options "noopen" always;

参考:

https://blog.csdn.net/wwppp987/article/details/117822609

8.检测到目标X-Permitted-Cross-Domain-Policies响应头缺失洞

描述:

用于指定当不能将"crossdomain.xml"文件(当需要从别的域名中的某个文件中读取 Flash 内容时用于进行必要设置的策略文件)放置在网站根目录等场合时采取的替代策略。
master-only 只允许使用主策略文件(/crossdomain.xml)

处理:

add_header X-Permitted-Cross-Domain-Policies  "master-only";

参考:

https://blog.csdn.net/wwppp987/article/details/117822609
https://www.cnblogs.com/oneapm/p/5168793.html

9.检测到目标Strict-Transport-Security响应头缺失

描述:

用于通知浏览器只能使用 HTTPS 协议访问网站。用于将 HTTP 网站重定向到 HTTPS 网站。

处理:

Strict-Transport-Security: max-age=31536; includeSubDomains
max-age 用于修改 STS 的默认有效时间。
includeSubDomains 用于指定所有子域名同样使用该策略。
preload,可选参数,一个浏览器内置的使用HTTPS的域名列表。
在nginx上配置:

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

参考:

https://blog.csdn.net/u012560410/article/details/86489979
https://blog.csdn.net/weixin_42715225/article/details/108520181
https://blog.csdn.net/wwppp987/article/details/117822609

10.HTTP动词篡改的认证旁路

检测:

img

处理:

       if ($request_method !~ ^(GET|HEAD|POST)$ )
       { 
         return 501;
       }

img

参考:

wwppp987/article/details/117822609

10.HTTP动词篡改的认证旁路

检测:

[外链图片转存中…(img-LE57yqXr-1692945367940)]

处理:

       if ($request_method !~ ^(GET|HEAD|POST)$ )
       { 
         return 501;
       }

[外链图片转存中…(img-My2cs8ch-1692945367940)]

参考:

https://idc.wanyunshuju.com/ngi/1059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值