绿盟 检测到目标URL存在http host头攻击漏洞

文章描述了一个技术问题,即通过curl命令使用特定Host头访问服务器时收到301重定向。问题源在于ELB配置,但服务器Nginx上添加Host判断后影响了正常访问。通过分析nginx日志,找到一个100开头的IP也需要排除在外,经确认该IP稳定,最终在Nginx配置中的Host判断规则中包含了这个IP,从而解决了403Forbidden的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题的整个排查思路和解决方案

问题描述

用curl -v -H 'Host: www.attack.com' http://139.0.0.1:80

响应头:
HTTP/1.1 301 Moved Permanently
Date: Sat, 29 Apr 2023 23:07:02 GMT
Content-Type: text/html
Content-Length: 150
Connection: keep-alive
Location: https://www.attack.com:443/
Server: elb

由于其他项目已经做过host判断,验证发现用ELB外网地址就存在这个,而直接用服务器地址就不存在这个问题,

这个问题是ELB的问题,属于误报

现在的问题是需要服务器nginx配置上加上host判断

if ($host !~* ^example.com.cn|10.0.0.1$)
{
	return 403;
} 

但是加上之后,正常的页面无法访问,有时页面进不去,有时后端接口调用不了

为了解决这个问题,在nginx日志配置上最后加上$host

  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$host" ';

通过查看nginx的access.log排查了解目前的调用有哪些host

通过查看日志,定位到一个100开头的ip也是host,于是把这个ip加进去,果然解决了问题

现在还有一个问题是这个100开头的ip是否会变化?会在重启服务时变化吗?如变化的话就不能只加ip,得知道ip的子网掩码得到这个ip范围,写个正则匹配这个范围的ip,后经运维确认这个是个虚拟服务器IP,总之不会随意变更,所以最终就是如下

if ($host !~* ^example.com|10.0.0.1|100.0.0.1$)
{
	return 403;
} 

验证curl -v -H 'Host: www.attack.com' http://10.0.0.1:80

返回403,ok

Nginx是一款流行的开源Web服务器,但也常用于反向代理和其他网络服务。如果检测目标主机遭受缓慢的HTTP拒绝服务(DoS)攻击,通常绿盟这样的安全扫描系统会发出警报。为了修复这种情况并提高服务器性能,可以采取以下几个步骤调整Nginx配置: 1. **增强连接限制**: - 使用`limit_conn_zone`指令创建一个区域来存储每个IP地址的最大并发连接数。例如: ``` limit_conn_zone $binary_remote_addr zone=conn_limit:10m; server { listen 80; limit_conn conn_limit max=$limit_conn_zone; } ``` 这里设置了每个IP地址最多只能有10MB的连接数。 2. **请求速率限制**: - 添加`limit_req_zone`来限制单个IP地址的请求数率: ``` limit_req_zone $binary_remote_addr zone=rate_limit:10r/m; server { location / { limit_req zone=rate_limit burst=3 nodelay; } } ``` 每分钟允许10次请求,超过这个次数则暂时禁止访问。 3. **启用日志记录和监控**: - 配置Nginx的错误日志,以便详细跟踪可疑活动: ``` error_log /var/log/nginx/restrictions.error.log crit; ``` 使用工具如syslog-ng或ELK Stack对日志进行分析。 4. **黑/白名单机制**: - 如果确定某些来源是恶意的,可以在`access_log`中添加检查规则,将它们加入黑名单,并在必要时返回适当的HTTP状态码,如429 Too Many Requests。 5. **防火墙策略**: - 联合系统防火墙,仅允许来自已知良好来源的流量,并封锁其他可疑IP。 记得定期检查Nginx的错误日志,更新安全规则,并根据实际情况调整限制阈值。同时,保持软件到最新版本,修复已知的安全漏洞也很重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值