我们的日志中有很多这样的请求:
[07/Dec/2015:19:37:03 +0000] "\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\!
x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01" 400 172 "-" "-" "-"
我猜这是一个安全漏洞,但我用 Google 没找到。有没有人见过这个或知道它是什么?
答案1
这可能是试图利用安全漏洞,但日志条目中没有任何内容表明您的服务器存在漏洞。
客户端不是在说 HTTP。它只是发送一系列字节,这些字节的值都是 1。如果是 HTTP,它将被解释为 ASCII 字符,而 ASCII 中的 1 字节是很少使用的控制字符,在 HTTP 中没有任何意义。
这可能是试图利用缓冲区溢出,但如果是这样的话,您的服务器似乎在请求到达恶意负载之前就将其拒绝为无效请求。在易受攻击的服务器上,很可能不会记录任何内容。
日志中的400
表示您的服务器拒绝了该请求,认为其无效。这是因为 1 个字节的流不是有效的 HTTP 方法,而且它太长了。
一个回答姊妹网站上的一个相关问题指出,这种请求也可能是试图对您的服务器进行指纹识别,以查明其正在运行什么软件。
答案2
看起来有人正在向你的网络服务器请求一些 shellcode。
我通常会忽略它,但如果它导致日志记录或其他问题,就会禁止它们。
快速对他们的 IP 地址进行 Whois 查询,如果是一所大学,则将日志报告给 abuse@ 电子邮件 ;)
答案3
也许你已经设置了,proxy_pass https://upstream;
而你的上游服务器只是在监听http
端口,如果上游服务器也是一个 nginx 服务器,它的访问日志就会像你上面发布的那样。