Die Auswirkung der Apache-Konfiguration auf die Sicherheit der Webanwendung
Kommentare

Zuerst prüfen wir einmal, was passiert, wenn die Methode GET verwendet wird. Wie zu erwarten, gibt es eine Fehlermeldung, da eine Autorisierung nötig ist: „401 Authorization Required“ (Listing 6).
Listing

Zuerst prüfen wir einmal, was passiert, wenn die Methode GET verwendet wird. Wie zu erwarten, gibt es eine Fehlermeldung, da eine Autorisierung nötig ist: „401 Authorization Required“ (Listing 6).

Listing 6: Zugriff auf index.php mit der Methode GET
ceilers$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /~ceilers/Access-Test/index.php



401 Authorization Required

Authorization Required

This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.

Connection closed by foreign host. ceilers$

Und was passiert, wenn stattdessen die Methode POTATO verwendet wird?

  • Beim Zugriff auf index.php wird die Ausgabe des PHP-Skripts ausgegeben, siehe Listing 7
  • Beim Zugriff auf index.html gibt es eine Fehlermeldung: „501 Method Not Implemented“, siehe Listing 8
  • Beim Zugriff auf test.inc gibt es die gleiche Fehlermeldung, siehe Listing 9
  • Und beim Zugriff auf test.inc.php wird die Ausgabe des PHP-Skripts ausgegeben, siehe Listing 10
Listing 7: Zugriff auf index.php mit der Methode POTATO
ceilers$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
POTATO /~ceilers/Access-Test/index.php

Hier gibt es weiter nichts zu sehen...
Connection closed by foreign host.
ceilers$ 
Listing 8: Zugriff auf index.html mit der Methode POTATO
ceilers$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
POTATO /~ceilers/Access-Test/index.html


501 Method Not Implemented

Method Not Implemented

POTATO to /~ceilers/Access-Test/index.html not supported.

Connection closed by foreign host. ceilers$
Listing 9: Zugriff auf test.inc mit der Methode POTATO
ceilers$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
POTATO /~ceilers/Access-Test/test.inc 


501 Method Not Implemented

Method Not Implemented

POTATO to /~ceilers/Access-Test/test.inc not supported.

Connection closed by foreign host. ceilers$
Listing 10: Zugriff auf test.inc.php mit der Methode POTATO
ceilers$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
POTATO /~ceilers/Access-Test/test.inc.php



Connection closed by foreign host.
ceilers$ 

Eigentliche Ursache des Problems ist das Zusammenspiel von Apache und PHP: Requests für PHP-Skripte werden vom Apache an PHP weitergeleitet, sofern sie nicht über die .htaccess-Datei verboten sind. Und PHP interpretiert die unbekannte Methode POTATO als GET, worauf dann ganz normal geantwortet wird.


Themen der letzten Seite:

  • HTExploit im Einsatz
  • Request-Methoden für CGI-Skripte
  • Zugriffsbeschränkungen auf Basis des Hostnames
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -