2017-09-09 2 views
0

Ich habe einen einfachen Portscanner in Python geschrieben. Ich habe schon etwas gefragt, Sie können den Code here finden.Portscanner produziert möglichen Fehler

Ich habe den Code korrigiert und kann jetzt eine Verbindung zu z. stackoverflow.net

Aber der Ausgang ich erhalte, ist mehr oder weniger kryptisch für mich:

[+] Scan results for: li547-15.members.linode.com , 198.74.50.15 
[+]80/tcpopen 
[+] b'HTTP/1.1 400 Bad Request\r\nDate: Sat, 09 Sep 2017 18:16:50 GMT\r\nServer: Apache/2.4.7 (Ubuntu)\r\nConten' 

Ich möchte verstehen, was die letzte Zeile Mittel (die ersten, die mir ziemlich klar sind). Es scheint die Antwort des Servers zu sein, aber was bedeutet dieses "schlechte Anfrage" Zeug?

+2

Scheint ziemlich offensichtlich. Der Server möchte [HTTP] (https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol) über Port 80 sprechen. Der Portscanner sendet 'ExploitMessage \ r \ n'', was der Server als HTTP-Verb interpretiert versteht nicht/unterstützt nicht. Daher: "Schlechte Anfrage", die grob übersetzt "Du verwendest kein Protokoll, das ich verstehe". – dhke

+0

Vielen Dank! Das gab mir den Anstoß, weiter an diesem Thema zu arbeiten! Möchten Sie Ihren Kommentar in eine richtige Antwort umwandeln? –

Antwort

1

The referenced script

  • stellt eine Verbindung zu dem Ziel-Port
  • die Zeichenfolge 'ExploitMessage\r\n' über den Draht und
  • vom Server höchstens 100 octets liest zurück sendet.

Da Port 80 für HTTP reserviert ist, so scheint es sicher davon ausgehen, dass ein Server gibt es das Protokoll auf der anderen Seite sprechen.

Nun, korrekte HTTP-Anfragen beginnen alle mit einem request line der Form:

request-line = method SP request-target SP HTTP-version CRLF 

'ExploitMessage\r\n' nicht dem entsprechen, damit der Server folgt der RFC:

Recipients of an invalid request-line SHOULD respond with either a 400 (Bad Request) error or a 301 (Moved Permanently) redirect with the request-target properly encoded

Was Sie sind Zurück erhalten entspricht eine abgeschnittene HTTP response Signalisierung des Fehlers:

HTTP/1.1 400 Bad Request 
Date: Sat, 09 Sep 2017 18:16:50 GMT 
Server: Apache/2.4.7 (Ubuntu) 
Conten 
Verwandte Themen