kostenloser Webspace werbefrei: lima-city


Verdächtige Seitenaufrufe

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    leicht-gekocht

    leicht-gekocht hat kostenlosen Webspace.

    Hallo!

    Ich habe bemerkt, dass einige Seitenaufrufe sehr verdächtig aussehen. Kann damit aber leider nichts anfangen und weiß nicht ob ich mir Sorgen machen sollte.

    Ich vermute es soll auf den MySQL zugegriffen werden. Hier ist ein Ausschnitt aus meiner Log:

    01.08.2014 - 17:50:09 - 188.***.***.*** - GET - /index.php?go=10052'" - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; generic_01_01; YPC 3.2.0; .NET CLR 1.1.4322; yplus 5.3.04b) 
    01.08.2014 - 17:50:09 - 188.***.***.*** - GET - /index.php?go=10052 - Opera/9.27
    01.08.2014 - 17:50:09 - 188.***.***.*** - GET - /index.php?go=10052%20AnD%20SLeeP%283%29 - Opera/9.27
    01.08.2014 - 17:50:10 - 188.***.***.*** - GET - /index.php?go=10052%26%26SlEEp%283%29 - Opera/9.27
    01.08.2014 - 17:50:10 - 188.***.***.*** - GET - /index.php?go=10052%27%20AnD%20sLeep%283%29%20ANd%20%271 - Opera/9.27
    
    01.08.2014 - 17:54:41 - 192.***.***.*** - GET - /index.php?go=100521111111111111%20UNION%20SELECT%20CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45),CHAR(45,120,50,51,45,81,45),CHAR(45,120,50,52,45,81,45)%20--%20%20/* - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; elertz 2.4.179[128]; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)
    
    01.08.2014 - 17:54:41 - 192.***.***.*** - GET - /index.php?go=100521111111111111%20UNION%20SELECT%20CHAR(45,120,49,45,81,45),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81,45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45),CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45),CHAR(45,120,50,51,45,81,45),CHAR(45,120,50,52,45,81,45),CHAR(45,120,50,53,45,81,45)%20--%20%20/* - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; generic_01_01; InfoPath.1)


    Vielen Dank schonmal!

    Beitrag zuletzt geändert: 2.8.2014 23:32:08 von leicht-gekocht
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Derartige Seitenaufrufe, wie Du sie aus deinem Log zitierst, mußt Du nicht persönlich nehmen. Da ist irgendein Script auf der Suche nach Lücken. Das kommt bei nahezu jeder Website, die irgendwo im Web verlinkt ist, vor

    Ob Du dir Sorgen machen mußt, kann dir nur jemand sagen, der weiß, wie in deinem Skript GET-Parameter und Datenbankabfragen behandelt werden. Gehen Userdaten schlecht oder nicht gefiltert durch und die folgende SQL-Query ist auch nicht sauber gebaut, dann solltest Du dir zumindest Gedanken machen.

  4. Autor dieses Themas

    leicht-gekocht

    leicht-gekocht hat kostenlosen Webspace.

    Vielen Dank!

    Ich habe mich jetzt ein bisschen im Internet mit dem Thema SQL-Injection vertraut gemacht. Außerdem habe ich mal einige Anfragen an meiner Seite versucht aber bis jetzt habe ich noch keine Sicherheitslücke gefunden.

    Habe ich das richtig verstanden, dass jedes GET, welches direkt auf eine Anfrage in MySQL geht, durch z.B.:
    mysql_real_escape_string( $_GET['go'] );
    und eine Zahl durch
    intVal( $_GET['id'] );
    geschützt werden kann?
  5. Schütze einfach gegen SQL mit mysql_real_escape_strings und htmlspecialchars gegen xss.
    Ich suche wenn du nichts dagegen hast auf deiner Seite mal nach Schwachstellen!
  6. Autor dieses Themas

    leicht-gekocht

    leicht-gekocht hat kostenlosen Webspace.

    ja sehr gerne, wenn du Zeit und lust dazu hast! Bin über jede Hilfe dankbar :thumb:

    Edit: Ich habe noch ein Paar Sachen gefunden und meiner Meinung nach behoben.

    Beitrag zuletzt geändert: 4.8.2014 0:51:44 von leicht-gekocht
  7. am besten Du benutzt sogar mysql prepare statements.

    Hier kann nichts passieren, auch wenn du mal vergessen hast eine Eingabe mal zu filtern.

    http://www.php-einfach.de/codeschnipsel_11312.php
  8. leicht-gekocht schrieb:
    Habe ich das richtig verstanden, dass jedes GET, welches direkt auf eine Anfrage in MySQL geht, durch z.B.:
    mysql_real_escape_string( $_GET['go'] );
    und eine Zahl durch
    intVal( $_GET['id'] );
    geschützt werden kann?


    Interessant sind aber nicht nur die GET-Variablen, sondern grundsätzlich alles was vom Clienten kommt und manipuliert werden könnte. Darunter fällt z.B. auch
    $_SERVER['HTTP_REFERER']
    oder
    $_SERVER['HTTP_USER_AGENT'].


    Wie ka3ax85 schon geschrieben hat, mit prepared statements kannst du dem Problem am Einfachsten aus dem Weg gehen.
  9. Autor dieses Themas

    leicht-gekocht

    leicht-gekocht hat kostenlosen Webspace.

    ka3ax85 schrieb:
    am besten Du benutzt sogar mysql prepare statements.

    Hier kann nichts passieren, auch wenn du mal vergessen hast eine Eingabe mal zu filtern.

    http://www.php-einfach.de/codeschnipsel_11312.php


    lothor schrieb:

    Interessant sind aber nicht nur die GET-Variablen, sondern grundsätzlich alles was vom Clienten kommt und manipuliert werden könnte. Darunter fällt z.B. auch
    $_SERVER['HTTP_REFERER']
    oder
    $_SERVER['HTTP_USER_AGENT'].


    Wie ka3ax85 schon geschrieben hat, mit prepared statements kannst du dem Problem am Einfachsten aus dem Weg gehen.


    Vielen Dank an euch beide! Ich habe jetzt alles mit prepared statements umgeschrieben. Hat zwar einige Zeit in Anspruch genommen aber nachdem man sich eingelesen hatte, ging es.

    Falls jemand nochmal Zeit und Lust hat und sich damit auskennt, kann derjenige gerne nochmal nach Sicherheitslücken bei mir suchen.
  10. Sich auf prepared statements zu verlassen ist nicht wirklich ein saubere Lösung. Generell gilt, prüfe jede einhabe die von deiner Application verarbeitet wird. Das fängt beim richtigen Type an und hört irgendwo beim einem validen Wert auf.

    Shortcuts mit filter_var() http://php.net/manual/de/function.filter-var.php: Speziell die Sanatize Filter sind hier interessant. "FILTER_SANITIZE_EMAIL" zum Beispiel.


    In deinem Beispiel, wird offensichtlich ein integer für $_GET['go'] erwartet. Einfaches Type-Casting reicht zwar in den meisten Fällen aus, aber wenn du nur eine bestimmte Bandbreite an Ziffern erwartest, kannst du überlange Zahlen einfach beschneiden, oder auch einfach direkt ignorieren. Denn die kommen mit Sicherheit nicht von einer vertrauenswürdigen Quelle.

    Und mit diesem Konzept kannst du alle Eingaben behandeln die verarbeitet werden. Damit kannst Du schon einen ganzen Haufen an Angriffsmöglichkeiten im Keim ersticken und die 0815 Scripts kommen da meist so, oder so nicht drauf klar.
  11. k*************g

    lothor schrieb:
    Interessant sind aber nicht nur die GET-Variablen, sondern grundsätzlich alles was vom Clienten kommt und manipuliert werden könnte. Darunter fällt z.B. auch
    $_SERVER['HTTP_REFERER']
    oder
    $_SERVER['HTTP_USER_AGENT'].

    Dies ist insbesondere für Besucherzähler relevant. Wenn diese noch öffentlich zugänglich sind, verwende "htmlentities" für die Ausgabe.
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!