检测到目标URL存在http host头攻击漏洞
修复如下:
# 新增的默认 Catch-All 服务块
server {
listen 8081 ssl default_server;
server_name _;
# 添加您现有证书和密钥
ssl_certificate /path/to/your_ssl_certificate;
ssl_certificate_key /path/to/your_ssl_certificate_key;
# 复制原始 server 段中 SSL 相关配置到该新增的部落
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
return 444;
}
sudo nginx -t # 测试新的配置文件
sudo systemctl reload nginx # 或 sudo service nginx reload,根据系统类型和安装选择相应的重载命令
验证:
为了验证您已经修复了 HTTP Host 头攻击漏洞,您可以尝试发送带有非法或恶意 Host 头的 HTTP 请求。您可以使用 curl 命令实现这一目的。
按照以下步骤操作:
- 使用有效的 Host 名测试正常访问:
curl -k -H "Host: ms.xxxx.com.cn" https://ms.xxxx.com.cn:8081
上述命令应该返回您服务器的正常响应。
- 使用伪造的 Host 名尝试攻击:
curl -k -H "Host: evil-host.com" https://ms.xxxx.com.cn:8081
使用伪造的 Host 名进行访问时,您将收到一个空响应。原因是 Nginx 已经拒绝连接并返回状态码 444。
如果您收到了正确的响应结果(即第一个请求成功,而第二个请求失败),那么说明您的 Nginx 配置已经成功阻止了潜在的 HTTP Host 头攻击。请注意,由于 -k 参数的作用,curl 命令将忽略证书错误。在生产环境下,建议使用有效的 SSL 证书来避免可能的安全风险。
检测到目标服务器启用了OPTIONS方法
这个配置可以实现禁止OPTIONS方法的目的。在Nginx中使用这段代码会使服务器为OPTIONS请求返回HTTP 403(禁止)错误。
将以下代码添加到Nginx配置文件的location块中:
if ($request_method = OPTIONS) {
return 403;
}
完成后,请保存配置文件并重新启动Nginx以使更改生效。
要验证是否成功禁用了OPTIONS方法,您可以使用curl命令行工具执行一个OPTIONS请求,观察返回的结果。
打开命令行终端,运行如下命令:
curl -v -X OPTIONS http://your-server-address
将http://your-server-address替换为您的Web服务器的实际地址(例如:Example Domain)。
如果您成功禁用了OPTIONS方法,返回的结果应该是一个HTTP 403(禁止)错误。在这种情况下,您已经成功解决了问题。
如果返回的仍然是HTTP 200 OK或其他响应状态码,说明OPTIONS未禁用。此时,需要检查配置文件,并确保正确应用了相关设置。
nginx 修复xss
加到location和server字段都可以
add_header X-Content-Type-Options nosniff;
add_header 'Referrer-Policy' 'origin';
add_header X-Download-Options "noopen" always;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Permitted-Cross-Domain-Policies "master-only";
add_header X-Frame-Options SAMEORIGIN;
add_header Content-Security-Policy "default-src 'self'";
add_header X-Content-Type-Options: nosniff;