Gefährliche Standardkonfiguration des Apache für PHP-Suffixe

Soeben bin ich auf den folgenden Blogeintrag aufmerksam geworden, der mich doch recht stutzig gemacht hat:

[...] The non-obvious problem with the above is that it will allow not only "file.php" to be treated as PHP scripts, but also "file.php.txt", which means that any file containing ".php" in its name, no matter where in the filename, would be treated as a PHP script. [...]

http://ilia.ws/archives/226-Beware-of-the-default-Apache-2-config-for-PH...

Auswirkung des beschriebenen Fehlers ist, dass mal wieder die kleinste Unaufmerksamkeit zu einer riesigen Sicherheitslücke führt.

Aus meiner Sicht existiert auch kein sinnvoller Grund für diese laxe Behandlung der PHP-Typen und ich kann daraus nur folgende Schlüsse ziehen:
- Benutzer-Uploads sehr exakt prüfen (MIME-Typ, Suffix(e!), ...)
- Benutzer-Uploads nur in Verzeichnissen speichern, in denen keine Scripte ausgeführt werden können
- Das beschriebene Problem unbedingt auf den eigenen Servern testen und wenn nicht selbst administriert, den Hoster auf die Schwachstelle hinweisen.

Einordnung:

Comments

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><blockquote>
  • Lines and paragraphs break automatically.
  • Pairs of<blockquote> tags will be styled as a block that indicates a quotation.
  • You can enable syntax highlighting of source code with the following tags: <c>, <cpp>, <css>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <smarty>, <xml>. The supported tag styles are: <foo>, [foo]. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Textual smileys will be replaced with graphical ones.
  • Each email address will be obfuscated in a human readable fashion or (if JavaScript is enabled) replaced with a spamproof clickable link.

More information about formatting options

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.