Der Martin: Remote File Include Vulnerability

Beitrag lesen

Hallo,

ich hatte mit einem gästebuch ein paar probleme mit hackern, und wollte die entsprechenden code zeilen ändern. ich frage mich nur schützt das auch wirklich?

um das zu beurteilen, brauchen wir mehr Hinweise als nur die paar Zeilen Code. Tatsache ist aber, so böse das klingt, dass eben diese paar Zeilen schon Unsinn sind.

original:
include $language_file;

Und woher bekommst du $language_file? Da solltest du ansetzen.

geändert:

if (is_file("language/english.php")) {

include $language_file;
} elseif (is_file("language/german.php")) {
   include $language_file;
} //else{  exit ('Netter Versuch Ihr Saecke');}

  
Es ist witzlos, wenn du zwei konkrete Dateien auf Existenz prüfst, und dann doch wieder eine beliebige andere includierst.  
  

> original:  
> include $config['comments\_form\_tpl'];  
  
Das könnte relativ "sicher" sein, wenn du $config[] selbst mit erlaubten Werten initialisierst.  
  

> ~~~php

if (is_file("jubjub.php")) {  

>   include $config['comments_form_tpl'];  
> }elseif (is_file("jubjub.php")) {  
>   include $config['comments_form_tpl'];  
> } //else{  exit ('Netter Versuch Ihr Saecke');}

Hier steckt dieselbe verdrehte Logik drin, wie ich oben schon kritisiert habe.

nur hier weiß ich es nicht genau, weil ansonsten böse menschen soetwas wie dies tun würden:

http://localhost/path/comments-display-tpl.php?language_file=[evilcode]
http://localhost/path/comments-display-tpl.php?config[comments_form_tpl]
=[evilcode]

Du hast doch wohl hoffentlich nicht register_globals aktiviert? Dann stell das mal schnellstens ab. Das wäre schon ein erster Schritt, dass dir Fremde nicht beliebige Variableninhalte unterjubeln können.

Ciao,
 Martin

--
Solange der Nagellack nicht trocken ist,
ist eine Frau praktisch wehrlos.
  (Burt Reynolds, US-Schauspieler)