Komische Adressaufrufe

doofyzz

Registered User
Guten Morgen,

ich bastel meine Website bei jedem Aufruf über ein Script zusammen, das wie folgt aussieht:

Die Standartseite und der entsprechende Inhalt wird immer per include eingfügt. Der einzufügende Inhalt ist immer in einer extra Datei.

Das Script fragt also ab, ob die Datei existiert, wenn ja, wird sie eingefügt, wenn nein, bekomm ich eine Mail, das die Datei aufgerufen wurde, aber nicht existiert.

Die URL sieht folgender maßen aus: www.meinesite.xyz/index.php?open=dateiname

Bsp.: dateiname = forum.php

Nun bekomm ich aber immer Mails, wo ganz neue Domains drinstehen.

Also gedacht ist es, das in der Mail stehen soll: "Die Datei forum.php wurde aufgerufen, existiert aber nicht". Ich bekomme dann jedoch Mails, in denen drinsteht: " Die Datei www.blabla.xyz wurde aufgerufe,..."

Also irgendwas/wer ruft die Url www.domain.de/index.php?open=www.blabla.xyz" bei mir auf, nach meinem Verständnis.

Weiß jemand, was das ist?

MFG

dOofy
 
Last edited by a moderator:
Das sind (maist automatisierte) Tests, ob dein Script Code Injection ermöglicht.
Ein Grund, wieso man sowas nicht macht. Du solltest lieber eine Page-ID übergeben und in einer Tabelle (Hash, XML-File, Datenbank u.s.w.) nachsehen, welche Datei dazugehört und diese includen.

In deinem Fall testest du ja wenigstens, ob der Aufruf eine existierende Datei ergibt. Das erste, was mir dazu einfällt, ist abtesten, ob z.B. sowas funktioniert: www.meinesite.xyz/index.php?open=../../../../etc/passwd
 
Last edited by a moderator:
Nein, geht nicht - is auch gut so :-)

Aber das hört sich schon wieder nach 'ner Menge Arbeit an, gibt es nicht vllt. andere Möglichkeiten, das zu vereinfachen. :-/
Dazu müsst ich ja die komplette Site umschreiben, oder?
 
Wenn gesichert ist, dass wirklich nur Dateien über den Mechanismus includet werden können, die dafür vorgesehen sind, dann kannste das so lassen.
Wenn du nicht ganz sicher bist, könntest du den übergebenen Wert einfach gegen eine Whitelist checken (passiert ja nur an einer Stelle).

Bei der nächsten Site kannst du es ja dann anders machen. Dass in den URLs sonstwas übergeben wird, ist immer so und kann auch nicht geändert werden. URLs sind User-Imput und da muss man immer mit allem und dem Schlimmsten rechnen.
 
Sicher bin ich mir da gar nicht. Hier ist mal der Code.
Aber ich denke, dadurch das ich immer noch die .php Endung ransetze sollte das ganze etwas sicherer werden, oder?

PHP:
  <?php          
           if ($open != "") 
           {
           if (file_exists($open.".php"))
           {
                    include("$open.php");
 
           } else { 
 
            $mailtext = "Die Datei $open wurde aufgerufen (Bernburg), existiert jedoch nicht."; 
             mail("$webmaster","Falsche Verlinkung!","$mailtext\n"); ?> 
      Sorry, aber die Datei <?php echo $open.".php"; ?> existiert nicht. Der Admin wurde per Mail verständigt.<br> 
      <br> 
      <a href="<?php echo $HTTP_REFERER; ?>">Zurück</a> 
      <? }} else {  include("newsaus.php");  } ?>
 
Also um das ganze etwas sicherer zu gestalten, könntest du $open mit regex prüfen zB.:
PHP:
if (preg_match('/^[A-Za-z0-9.\-_]+$/', $open) === 1) {
	echo 'Syntax OK!';
}

Das setzt natürlich voraus, dass $open keine Pfad enthält.

Gruß Flo
 
Last edited by a moderator:
Back
Top