有人试图入侵我的 Node.js 服务器,需要了解日志中的 GET 请求

有人试图入侵我的 Node.js 服务器,需要了解日志中的 GET 请求

好吧,我把我的 Node.js 服务器放了一段时间,回来后在日志中发现了一些非常有趣的东西。显然,一些来自中国或波兰的白痴试图使用目录遍历等方式攻击我的服务器,虽然他似乎没有成功,但我无法理解日志中的一些条目。这是“hohup.out”文件的输出。

攻击开始了,显然他正在尝试找出我服务器中的一些控制台条目。所有操作均失败并返回 404。

[90mGET /../../../../../../../../../../../ [31m500 [90m6ms - 2b[0m
[90mGET /<script>alert(53416)</script> [33m404 [90m7ms[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET / [32m200 [90m1ms - 240b[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET /pz3yvy3lyzgja41w2sp [33m404 [90m1ms[0m
[90mGET /stylesheets/style.css [33m404 [90m0ms[0m
[90mGET /index.html [33m404 [90m1ms[0m
[90mGET /index.htm [33m404 [90m0ms[0m
[90mGET /default.html [33m404 [90m0ms[0m
[90mGET /default.htm [33m404 [90m1ms[0m
[90mGET /default.asp [33m404 [90m1ms[0m
[90mGET /index.php [33m404 [90m0ms[0m
[90mGET /default.php [33m404 [90m1ms[0m
[90mGET /index.asp [33m404 [90m0ms[0m
[90mGET /index.cgi [33m404 [90m0ms[0m
[90mGET /index.jsp [33m404 [90m1ms[0m
[90mGET /index.php3 [33m404 [90m0ms[0m
[90mGET /index.pl [33m404 [90m0ms[0m
[90mGET /default.jsp [33m404 [90m0ms[0m
[90mGET /default.php3 [33m404 [90m0ms[0m
[90mGET /index.html.en [33m404 [90m0ms[0m
[90mGET /web.gif [33m404 [90m34ms[0m
[90mGET /header.html [33m404 [90m1ms[0m
[90mGET /homepage.nsf [33m404 [90m1ms[0m
[90mGET /homepage.htm [33m404 [90m1ms[0m
[90mGET /homepage.asp [33m404 [90m1ms[0m
[90mGET /home.htm [33m404 [90m0ms[0m
[90mGET /home.html [33m404 [90m1ms[0m
[90mGET /home.asp [33m404 [90m1ms[0m
[90mGET /login.asp [33m404 [90m0ms[0m
[90mGET /login.html [33m404 [90m0ms[0m
[90mGET /login.htm [33m404 [90m1ms[0m
[90mGET /login.php [33m404 [90m0ms[0m
[90mGET /index.cfm [33m404 [90m0ms[0m
[90mGET /main.php [33m404 [90m1ms[0m
[90mGET /main.asp [33m404 [90m1ms[0m
[90mGET /main.htm [33m404 [90m1ms[0m
[90mGET /main.html [33m404 [90m2ms[0m
[90mGET /Welcome.html [33m404 [90m1ms[0m
[90mGET /welcome.htm [33m404 [90m1ms[0m
[90mGET /start.htm [33m404 [90m1ms[0m
[90mGET /fleur.png [33m404 [90m0ms[0m
[90mGET /level/99/ [33m404 [90m1ms[0m
[90mGET /chl.css [33m404 [90m0ms[0m
[90mGET /images/ [33m404 [90m0ms[0m
[90mGET /robots.txt [33m404 [90m2ms[0m
[90mGET /hb1/presign.asp [33m404 [90m1ms[0m
[90mGET /NFuse/ASP/login.htm [33m404 [90m0ms[0m
[90mGET /CCMAdmin/main.asp [33m404 [90m1ms[0m
[90mGET /TiVoConnect?Command=QueryServer [33m404 [90m1ms[0m
[90mGET /admin/images/rn_logo.gif [33m404 [90m1ms[0m
[90mGET /vncviewer.jar [33m404 [90m1ms[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET / [32m200 [90m7ms - 240b[0m
[90mOPTIONS / [32m200 [90m1ms - 3b[0m
[90mTRACE / [33m404 [90m0ms[0m
[90mPROPFIND / [33m404 [90m0ms[0m
[90mGET /\./ [33m404 [90m1ms[0m

但事情就是从这时开始变得可疑了。

[90mGET http://www.google.com/ [32m200 [90m2ms - 240b[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET / [32m200 [90m1ms - 240b[0m
[90mGET /robots.txt [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m0ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m3ms[0m
[90mGET /manager/html [33m404 [90m0ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m0ms[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET http://37.28.156.211/sprawdza.php [33m404 [90m1ms[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET http://www.google.com/ [32m200 [90m2ms - 240b[0m
[90mHEAD / [32m200 [90m1ms - 240b[0m
[90mGET http://www.daydaydata.com/proxy.txt [33m404 [90m19ms[0m
[90mHEAD / [32m200 [90m1ms - 240b[0m
[90mGET /manager/html [33m404 [90m2ms[0m
[90mGET / [32m200 [90m4ms - 240b[0m
[90mGET http://www.google.pl/search?q=wp.pl [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m0ms[0m
[90mHEAD / [32m200 [90m2ms - 240b[0m
[90mGET http://www.google.pl/search?q=onet.pl [33m404 [90m1ms[0m
[90mHEAD / [32m200 [90m2ms - 240b[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET http://www.google.pl/search?q=ostro%C5%82%C4%99ka [33m404 [90m1ms[0m
[90mGET http://www.google.pl/search?q=google [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET http://www.google.com/ [32m200 [90m2ms - 240b[0m
[90mHEAD / [32m200 [90m2ms - 240b[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m0ms[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET http://www.baidu.com/ [32m200 [90m2ms - 240b[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mPOST /api/login [32m200 [90m1ms - 28b[0m
[90mGET /web-console/ServerInfo.jsp [33m404 [90m2ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET http://www.google.com/ [32m200 [90m10ms - 240b[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET http://proxyjudge.info [32m200 [90m2ms - 240b[0m
[90mGET / [32m200 [90m2ms - 240b[0m
[90mGET / [32m200 [90m1ms - 240b[0m
[90mGET http://www.google.com/ [32m200 [90m3ms - 240b[0m
[90mGET http://www.google.com/ [32m200 [90m3ms - 240b[0m
[90mGET http://www.baidu.com/ [32m200 [90m1ms - 240b[0m
[90mGET /manager/html [33m404 [90m0ms[0m
[90mGET /manager/html [33m404 [90m1ms[0m
[90mGET http://www.google.com/ [32m200 [90m2ms - 240b[0m
[90mHEAD / [32m200 [90m1ms - 240b[0m
[90mGET http://www.google.com/ [32m200 [90m1ms - 240b[0m
[90mGET http://www.google.com/search?tbo=d&source=hp&num=1&btnG=Search&q=niceman [33m404 [90m2ms[0m

所以我的问题是,为什么我的服务器会为根级域名返回“200”OK?黑客是如何设法向我的服务器发送 GET 请求的,以便“http://www.google.com“出现在日志中,而我的服务器只是一个在相对 URL 上运行的 API,例如“/api/login”。

而且,当我查看我的服务器记录的 OPTIONS、TRACE 和 PROPFIND HTTP 请求时,如果有人能解释一下黑客使用这些动词到底想要实现什么目的,那就太好了?

另外,“[90m [32m [90m1ms - 240b[0m” 到底是什么意思?“ms”是有意义的,可能是请求的毫秒数,其余的我无法理解。

谢谢你!

答案1

这看起来可能只是一次自动扫描,因此这背后有很多事情在起作用。所以我将重点讨论你的第一个问题:

黑客是如何向我的服务器发送 GET 请求的?http://www.google.com“出现在日志中,而我的服务器只是一个在相对 URL 上运行的 API,例如“/api/login”。

Web 服务器绑定到事物,它们在不同的网络级别执行此操作。它们通常可以绑定到以下内容:

  • 在 IP 层,它们可以绑定到特定 IP 或任何 IP。任何 IP 通常会在 netstat 中显示为监听,并带有类似*:80或 的内容:80,这意味着任何 IP。1.2.3.4:80这意味着仅有的知识产权1.2.3.4
  • 在传输层,有特定端口,如 TCP 端口 80,“:80”
  • 在应用层(Web 服务器代码)的“主机名”处。它通过检查 HTTP 数据包中的“主机”标头来实现此目的。

因此,如果您没有绑定到特定主机名,那么有人可以向您发送请求,将 HTTP 主机标头设置为他们想要的任何内容,然后您的 Web 服务器就会接受它。例如:

[kbrandt@grove: ~] ping google.com | head -n1
PING google.com (173.194.37.103): 56 data bytes
[kbrandt@grove: ~] curl -H 'Host: foo.com' 173.194.37.103
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

相关内容