800,- Kosten für Sicherheitsmangel???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 800,- Kosten für Sicherheitsmangel???

    Hallo Leute!

    Ich hab vor ca. 1 Jahr eine PHP-Page für eine befreundete Firma gebastelt.
    Diese Page wurde vor 2 Wochen gehackt und eine FTP-Zugangssoftware am Server installiert. Nun haben wir vom Provider eine Rechnung über 800 Euro bekommen, weil die der Meinung sind, daß alles unsere Schuld ist. Genaue Schäden am Server wurden uns nicht mitgeteilt.

    Nun meine Frage: Kann mich mein Provider für sowas belagen? Oder ist er nicht selbst für die Serversicherheit zuständig?

    Der Codeteil, um den es geht, sieht ca. so aus:

    PHP-Code:
    if ($_REQUEST[page]=="") { $page="news"; }
    else { 
    $page=$_REQUEST[page]; }; 
    Aufruf im Browser wäre dann: www.domain.com/index.php?page=$page

    Das habe ich aus folgendem Grund so gewählt: Die Seite wird über ein CMS gewartet und erweitert - d.h. $page ist wirklich dynamisch - ich hatte nicht wirklich die Möglichkeit, alle möglichen Varianten anzuführen.

    Daß das nicht ganz sauber war, ist mir jetzt auch klar. Allerdings hab ich bei nem anderen (viel größeren) Provider zig solcher Pages liegen - und da ist noch nie was passiert bzw. was beanstandet worden.

    Kernfrage: Kann mich mein Provider dafür belangen, daß über meine Seite von dritter Hand Programme am Server installiert wurden?

    Bräuchte die Antwort ziemlich dringend - würd mich also über rasches Feedback freuen.

    Danke, LG, Michael

  • #2
    gute frage. denk nicht. schließlich hat der Provider schlecht konfiguriert.

    1und1 hatte das problem auch mal, da konnte man mit dieser programmierung ein "loch" öffnent (siehe http://www.php-resource.de/forum/sho...threadid=30496)
    die haben das aber schon längst gemerkt und behoben.

    ich bin der meinung, wenn der provider net sicher programmiert kann er auf keinen dafür verantwortlich machen.
    sicher ist aber eher, wenn man mal die AGB ließt was die dazu schreiben.
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      Hi Benny-one!

      Vielen Dank für den Link - ja so in die Richtung geht das in etwa. Werd mir das jetzt mal in Ruhe durchlesen.

      Danke, LG, Michael

      Kommentar


      • #4
        Ein bisschen genauer sollte es schon sein!... Durch welches Sicherheitsloch sollen die Hacker reingekommen sein? Die von Dir zitierte Codezeile sollte höchstens am eigenen Webspace Schäden anrichten können (Z.B., indem man über $page an die ansonsten Passwortgeschützte Config-Datei von phpMyAdmin rankommt). Wenn jemand über dieses Loch den gesamten Server kompromittiert hat, liegt meiner Meinung nach eindeutig schlampige Administratorarbeit vor, für die der Provider voll selbst verantwortlich ist.

        OffTopic:

        Ich würde für Fragen solcher Art übrigens einen eigenen Account ohne www-Adresse einrichten. Googles Gedächtnis ist gnadenlos



        EDIT:
        Upps, hatte ja gar kein www. Falschen Post angeguckt....
        Zuletzt geändert von pekka; 20.08.2005, 14:48.

        Kommentar


        • #5
          Folgendes Mail hab ich von Provider bekommen:
          wie besprochen hier der problematische Codeteil:

          ########################################################
          <?php
          if ($_REQUEST[page]=="") {
          $page="aktuelles";
          } else {
          $page="$_REQUEST[page]";
          }
          include "$page.php";
          ?>
          ########################################################

          In der "index.html" werden die includes per Variable nachgeladen.

          $_REQUEST[page] kann ich selbst übergeben, also Code nachladen, in diesem
          Fall eine PHP-Shell von einem anderen Server
          (http://mitglied.lycos.de/b0mbed/cse.gif) , die sich im /tmp installiert
          hat. Durch diesen Zugriff wurde auf
          "http://www.meinedomain.com" * ein FTP Programm installiert.

          Man muß auf dieser Seite die Auswahl mit einer weiteren if-Schleife
          begrenzen (~21 Dateinamen) und alle weiteren Eingaben
          aussperren.
          * Link möchte ich hier nicht posten - zum Schluss macht es sich einer zur Aufgabe, weitere Sicherheitslücken aufzudecken ;-)


          Bin aber bei meiner Internetrecherche draufgekommen, daß

          index.php?page=http://

          nur dann zulässig ist, wenn allow_url_fopen in der php.ini auf ON steht.

          Kann mir das jemand bestätigen?

          Aktuell ist das in der Serverkonfig aber auf OFF gestellt - ob das während des Angriffs auch so war, kann ich nicht nachvollziehen.

          Danke, LG, Michael

          Kommentar


          • #6
            also wenn dein Provider nicht fähig ist, eine konfigurierung vorzunehmen, die verhindert, dass benutzer über ihren "ordner" hinaus auf andere zugreifen können, dann ist das dene ihr problem.
            denn die können sowas ganz einfach verhindern.
            Sunshine CMS
            BannerAdManagement
            Borlabs - because we make IT easier
            Formulargenerator [color=red]Neu![/color]
            Herkunftsstatistik [color=red]Neu![/color]

            Kommentar


            • #7
              also wenn dein Provider nicht fähig ist, eine konfigurierung vorzunehmen, die verhindert, dass benutzer über ihren "ordner" hinaus auf andere zugreifen können, dann ist das dene ihr problem.
              denn die können sowas ganz einfach verhindern.
              So ist es. Wenn die Einbrecher über den Kontext des Web-Kunden hinaus agieren konnten, ist der Provider wie gesagt selbst schuld.
              Und ein FTP-Server (oder was auch immer), der sich in /tmp eingenistet hat, fällt m.E. in diese Kategorie.

              Kommentar


              • #8
                ok, danke Leute - meine Zweifel sind verflogen. Bin jetzt sogar schon auf dem Standpunkt, DENEN was für meinen jetzigen Aufwand zu verrechnen...

                Problem ist halt nur, daß das Freunde von Freunden sind - und da ist privat von Business nur schwer zu trennen - leider... naja, wird sich schon alles zurechtbiegen lassen :-)

                Schönes WE an alle!
                LG Michael

                Kommentar


                • #9
                  und wenn du schon einfach was includierst, was du als parameter bekommst, prüfe vorher noch das vorhandensein mit fileexists()
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Original geschrieben von Abraxax
                    und wenn du schon einfach was includierst, was du als parameter bekommst, prüfe vorher noch das vorhandensein mit fileexists()
                    @Citral: nimm dieses script:

                    PHP-Code:
                    <?
                    if(preg_match("#..#",$HTTP_GET_VARS[site])    // alles was auf höhere Verzeichnisse zugreift
                    || substr($HTTP_GET_VARS['site'],0,1)=="/"            // alles was auf doc-root zugreift
                    || strpos($HTTP_GET_VARS['site'],"://")                // alles was Scripte von anderen Servern includet
                    || !isset($HTTP_GET_VARS['site'])                    // keine Seite übergeben
                    || !$HTTP_GET_VARS['site']                            // übergebene Seite ist leer
                    || !file_exists($HTTP_GET_VARS['site'])                // Datei gibt es nicht
                    )
                        {
                        $HTTP_GET_VARS['site']="content/home.php";
                        }
                    include_once($HTTP_GET_VARS['site']);
                    ?>
                    Sunshine CMS
                    BannerAdManagement
                    Borlabs - because we make IT easier
                    Formulargenerator [color=red]Neu![/color]
                    Herkunftsstatistik [color=red]Neu![/color]

                    Kommentar


                    • #11
                      @Benny-one: cool, danke - das nenn ich Service ;-)
                      das Script passt perfekt - und ich kann meine anderen Sites damit leicht anpassen, ohne alle möglichen Variablen anführen zu müssen.

                      Vielen Dank!

                      Kommentar


                      • #12
                        das script war bei dem link zu finden den ich dir gepostet habe und den habe nicht ich programmiert sondern einer der mods hier.
                        Sunshine CMS
                        BannerAdManagement
                        Borlabs - because we make IT easier
                        Formulargenerator [color=red]Neu![/color]
                        Herkunftsstatistik [color=red]Neu![/color]

                        Kommentar


                        • #13
                          eine prüfung mit file_exists() reicht vollkommen aus!
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Original geschrieben von Abraxax
                            eine prüfung mit file_exists() reicht vollkommen aus!
                            quark!
                            was ist, wenn ein angreifer sich einfach eine .htpasswd aus einem übergeordneten verzeichnis holen will, dann stimmt ja file_exists() aber der darf da net rankommen. und so hätte der angreifer die passwörter.
                            Sunshine CMS
                            BannerAdManagement
                            Borlabs - because we make IT easier
                            Formulargenerator [color=red]Neu![/color]
                            Herkunftsstatistik [color=red]Neu![/color]

                            Kommentar


                            • #15
                              Original geschrieben von Benny-one
                              quark!
                              was ist, wenn ein angreifer sich einfach eine .htpasswd aus einem übergeordneten verzeichnis holen will, dann stimmt ja file_exists() aber der darf da net rankommen. und so hätte der angreifer die passwörter.
                              Die doch aber in der Regel verschlüsselt sind, oder etwa nicht?

                              Kommentar

                              Lädt...
                              X