我在python中写了一个简单的portscanner。我已经问过一些问题,您可以在这里找到代码。
我更正了代码,现在可以创建与例如stackoverflow.net
但是我得到的输出对我来说或多或少是神秘的:
[+] Scan results for: li547-15.members.linode.com , 198.74.50.15
[+]80/tcpopen
[+] b'HTTP/1.1 400 Bad RequestrnDate: Sat, 09 Sep 2017 18:16:50 GMTrnServer: Apache/2.4.7 (Ubuntu)rnConten'
我想了解最后一行的含义(对我来说,第一行很清楚)。这似乎是服务器的响应,但是这个"不好的请求"内容是什么意思?
引用的脚本
- 建立与目标端口的连接
- 将字符串
'ExploitMessagern'
通过电线发送和 - 从服务器中最多读回100个八位。
鉴于端口80是为HTTP保留的,似乎可以安全地假设服务器在另一侧说该协议。
好吧,正确的http请求均以表格的请求行开始:
request-line = method SP request-target SP HTTP-version CRLF
'ExploitMessagern'
不符合这一点,因此服务器遵循RFC:
无效的请求行的接收者应以任何一个 400(不良请求)错误或301(永久移动)用请求目标正确编码
您要返回的内容匹配截断的http响应发出错误:
HTTP/1.1 400 Bad Request
Date: Sat, 09 Sep 2017 18:16:50 GMT
Server: Apache/2.4.7 (Ubuntu)
Conten