Ergebnis 1 bis 8 von 8
  1. #1
    Tsutomu Shimomura Avatar von -=Player=-
    Registriert seit
    15.02.2006
    Beiträge
    1.549

    Standard [B] Webfirewall

    Hab eine kleine Webfirewall gecoded.
    Ist nichts aufwendiges, soll nur das Prinzip darstellen, wie sowas funktionieren könnte.

    Beschreibung:
    GET und POST parameter werden auf Badwords überprüft.


    PHP-Code:
    <?php
    # http://novusec.com
    # by -=Player=-

    $BadWords = array("<"">""'""union""select""order""http");

    foreach(
    $_GET as $var1){
        
    $GloVars[] .= strtolower($var1);
    }
    foreach(
    $_POST as $var1){
        
    $GloVars[] .= strtolower($var1);
    }
    if(
    count($GloVars) > 0){
        foreach(
    $GloVars as $GloVar){
            foreach(
    $BadWords as $BadWord){
                if(
    substr_count($GloVarstrtolower($BadWord)) > 0){
                    die(
    'Hacking attempt!');
                }
            }
        }
    }
    ?>

  2. #2
    (*(void (*)()) sc)(); Avatar von Cheese
    Registriert seit
    25.12.2008
    Beiträge
    332

    Standard

    schönes script, gefällt mir, hab mir immer gedanken gemacht wie sowas funktioniert
    [myCheese.org]

    << n0psl3d >>

  3. #3
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Nette Idee und sicher sehr nützlich!
    Gut wäre es allerdings noch $GloVars am Anfang als Array zu definieren.
    Bei mir spuckt PHP gleich eine "Notice" aus;
    Notice: Undefined variable: GloVars in /home/blackberry/Desktop/firewall.php on line 13
    Natürlich ist das kein Fehler an sich, es ist aber sicher nicht so schön wenn man auf der Webseite Fehlermeldungen hat (es gibt ja immer wieder Leute mit error_reporting E_ALL ).

    Außerdem verstehe ich nicht ganz wieso du den "Append-String-Operator" bei neuen Array-Elementen benutzt - da war doch noch nie etwas drin o_O
    PHP-Code:
    $GloVars[] .= strtolower($var1); 
    Eine kleine Verkürzung des Codes wäre vielleicht noch durch array_merge möglich:
    PHP-Code:
    foreach(array_merge($_GET$_POST) as $var1){ 

    mfG. BlackBerry

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  4. #4
    Tsutomu Shimomura Avatar von -=Player=-
    Registriert seit
    15.02.2006
    Beiträge
    1.549

    Standard

    den append string operator hatte ich noch drin, weil ich davor noch was anderes drin hat und vergessen hatte den rauszunehmen

    und der grund warum ich kein array_merge verwendet habe ist, weil viele anfänger noch nicht alle befehle kenne, deshalb habe ich es so simpel wie möglich gestalltet.

    Aber wie oben schon erwähnt, soll es nur zum verständnis dienen.

  5. #5
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    Für was kleines nicht schlecht, aber nicht wirklich für nen guten, Produktiven Einsatz geeignet.

    Z.B.: XSS-Lücken - die werden quasi garnicht gefiltert (http, < und > ja, aber gibt ja noch 1000 andere Möglichkeiten)

    Auch das suchen nach SQL-Wörter halte ich für eher sinnlos, vllt. will ja jemand das wort SELECT irgendwo benutzten?

    Da kannst du besser addshlashes() nehmen, und aus Zahlen mit intval() definitv richtige Zahlen machen.

    greetz

  6. #6
    Stanley Jobson Avatar von K1ngC0bra
    Registriert seit
    26.08.2007
    Beiträge
    650

    Standard

    Zitat Zitat von -=Player=- Beitrag anzeigen
    Hab eine kleine Webfirewall gecoded.
    Ist nichts aufwendiges, soll nur das Prinzip darstellen, wie sowas funktionieren könnte.
    Der Text, den du eingegeben hast, ist zu kurz. Bitte erweitere den Text auf die minimale Länge von 1 Zeichen.
    Warum kommt eigentlich immer diese Meldung?

  7. #7
    Sobig Wurm
    Registriert seit
    15.12.2007
    Beiträge
    217

    Standard

    Das geht wesentlich einfacher und schneller zu programmieren:

    PHP-Code:
    <?php

    // Define bad Words
    $BadWords = array("<"">""'""union""select""order""http");

    // Glue our requeststring
    $ReqStr .= implode(''$_GET); 
    $ReqStr .= implode(''$_POST);
    $ReqStr .= implode(''$_REQUEST);
      
     
    // Search for badwords
    foreach($BadWords as $bw) {
        if(
    stripos($ReqStr$bw) !== false) die('Hacking attempt!');
    }

    ?>

  8. #8
    Be root - Use Linux Avatar von H4x0r007
    Registriert seit
    27.06.2007
    Beiträge
    1.878

    Standard

    Einzigstes Problem ist eben nur bei z.B. einem Forum. Es braucht nur einer union in den Text zu schreiben und schon hat man nen Hacking Attempt...
    Warum nicht einfach mysql_real_escape_string?
    Bald 14 Jahre auf Free-Hack. Krass wie die Zeit vergeht...
    "Drei Dinge sind unendlich - das Universum, die menschliche Dummheit und die WinRAR-Testversion"

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •