这个在请求 URI 中讲述山羊故事的无效 HTTP 请求的目的是什么?

信息安全 http 阿帕奇
2021-08-25 07:37:42

我目前运行一个 Apache HTTP 服务器,并设置了监控以在错误日志中出现错误时接收电子邮件。我通常会尝试查找我是否正在使用 HTTP 1.0,并尝试查看我是否正在使用可以被利用的现成软件,例如 WordPress。

周末,我在错误日志中看到了一个新条目,想知道潜在的利用者试图做什么(Abcdef 是我猜是利用者处理的(我已经改变了)):

:[DATE] [error] [client XXX.XXX.XXX.XXX] Invalid URI in request HEAD towards the green fields outside. Watch the goats chewing the grass. What is the meaning of life? Life isn't about getting to the end. Goats know this. You should know too. Goats are wise. Goats are cute. Listen to them! This is the message. Love goats, love the Internet! \xf0\x9f\x90\x90 Abcdef. HTTP/1.0

现在除了很明显地告诉我他们对山羊的爱之外,任何人都可以确定这个请求的目的是什么。我试图用谷歌搜索部分字符串..结果只是关于山羊的结果!

我猜这个想法是提供一个 URI,它会导致溢出,导致最后与 unicode 相关,但我不确定。

注意 我做了一个巨大的假设,即由于请求末尾的字符,请求确实具有邪恶的手段,因此在安全性而不是服务器故障中发布。

3个回答

我不知道这REDACTED部分是由什么组成的,但我可以告诉你,这些字节\xf0\x9f\x90\x90对应于 UTF-8 中的山羊图片

这里是:🐐


注意:一时兴起,我还查找了与这些字节值对应的Intel 操作码。它们根本没有做任何有趣的事情——0x90 是 NOP(什么都不做),0x9f 是 LAHF(将 FLAGS 加载到 AH 寄存器中),而 0xf0 是 LOCK(当 LAHF 后跟会引发非法指令错误)。

这看起来与在汉堡的混沌通信大会上发出的诗歌相似。特别是,它开始使用 HEAD 作为诗歌的一部分(下面的示例使用 DELETE 开始行)。

https://nakedsecurity.sophos.com/2016/01/07/millions-of-servers-infected-with-poem-inviting-them-to-jump-in-the-river/

刚刚在我的 access.log 中找到了相同的请求,带有这个 url:

http://massgoat4u.megabrutal.com/

这是什么?

受到#masspoem4u 的启发,我尝试重复他们所做的事情:向全球所有 IPv4 地址分发唯一的 HTTP 请求。

你是怎么做的?

我使用稍微修改过的 Robert Graham 的 masscan 版本,就像在 CCC 的 masspoem4u 家伙所做的那样。但是,我没有他们的网络那么快,所以我的扫描大约需要一周时间才能完成。您可以在这里找到一篇有趣的masscan 文章。

它有什么害处吗?

当然不是。它是完全无害的。您唯一应该看到的是 HTTP 日志中的消息。由于一个 IP 只收到一个请求,并且探测的顺序是随机的,因此它不会耗尽您的资源,也不会使您的网络过载。

除了来自另一个包含其他 UTF-8 字节的 IP 地址的请求之外,没有注意到任何其他异常,但它可能是不相关的。

[XXX.XXX.XXX.XXX] - - [DATE] "\xad\x17\x15\xd2\xf0\xa2y\xec\xc9\xe6\xe2\xe2\xd1\"\xb1\"\x88\x82Ojo\xb8Q\xa0r\xd5\xfe\xe5E\x9a\x01\xfcf\x18\xff\x9d\x05\x1dh\xa1\xc61\xea;\x04F\x8b\xb1SgEhGk\x86&\x93b<O" 200 11899 "-" "-"