Shadowcrow: Remote File Include Vulnerability

Beitrag lesen

hi $name,

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.

http://www.securityfocus.com/archive/1/484045

mehr weiß ich leider auch nicht, außer das der hack funktioniert.

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

in einem include der (fast) überall eingebunden wird:

  
// Are we using the default language or user's choice?  
function setupLanguage() {  
 global $config, $user_lang, $tb_language;  
  
 $path = $_SERVER['DOCUMENT_ROOT'] . $config['talkback_path'] . 'language/';  
  
 if ($_REQUEST['language'] && $_REQUEST['language'] != $config['default_language']) {  
  // visitor has selected a language  
  $language_file          = $path . $_REQUEST['language'] . '.php';  
  $user_lang              = $_REQUEST['language'];  
 } elseif ($tb_language) {  
  // it was set in the page that invoked comments.php  
  $language_file          = $path . $tb_language . '.php';  
  $_REQUEST['language']   = $tb_language;  
  $user_lang              = $tb_language;  
 } else {  
  // use the default language  
  $language_file          = $path . $config['default_language'] . '.php';  
  $_REQUEST['language']   = '';  
  $user_lang              = $config['default_language'];  
 }  
 return $language_file;  
}

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

*schäm* stimmt, ich habs geändert:
include ("language/english.php");

original:
include $config['comments_form_tpl'];

Das könnte relativ "sicher" sein, wenn du $config[] selbst mit erlaubten Werten initialisierst.

ist per config.php mit werten initalisiert, aber trotzdem wurde das als sicherheitslücke moniert.

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

*schäm* stimmt, ich habs geändert:
include ("comments-form-tpl.php");

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.

ja, register_globals ist aktiviert (nicht von mir). und per .htaccess läßt sich das leider nicht ausschalten (error 500).)

gruss
shadow

--
If there's anything more important than my ego around, I want it caught and shot, now.