wort finden

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

  • wort finden

    Hallo,

    ich hab momentan folgendes:

    PHP-Code:
    $query "action=msgdeletemsg;topic=119.0;msg=650";
    $array = array('wort_eins''delete''wort_drei');

    $i=0;
    while(
    $i<count($array)) {    
        if (
    eregi($array[$i], $query)) {
            echo 
    "Gefunden: ".$array[$i];
            break;
        }
        
    $i++;

    Ergebniss:
    Gefunden: delete

    Das hat mir bis jetzt auch gereicht aber ich brauch es jetzt doch einwenig komplizierter

    Ich möchte dass er mir das ganze wort (msgdeletemsg) anzeigt... also von sonderzeichen bis sonderzeichen kann mir da jemand helfen?

  • #2
    Hallo,
    meinst du das etwa so?
    PHP-Code:
    $query "action=msgdeletemsg;topic=119.0;msg=650";
    $array = array('wort_eins''msgdeletemsg''wort_drei');

    $i=0;
    while(
    $i<count($array)) {    
        if (
    eregi($array[$i], $query)) {
            echo 
    "Gefunden: ".$array[$i];
            break;
        }
        
    $i++;

    Ergebniss:
    Gefunden: msgdeletemsg

    Kann sein das ich es falsch verstanden habe

    Kommentar


    • #3
      *g* nee das wär schön...

      Also das array ist fest vergeben mit einzelnen begriffen.

      jetzt durchsuch ich querys (die kenn ich nicht, passiert automatisch) nach diesen begriffen.

      wenn ich also auf ein query stoße wo dieser begriff drin existiert, dann will ich das wort bzw. diesen string von = bis & haben (speichern)...

      oder um es kompliziert zu machen von = bis & oder bis ;

      Also wenn delete gefunden wurde gib mir den ganzen begriff von = bis & oder ; aus...

      das wär dann:
      msgdeletemsg

      hoffe konntest mich jetzt nen bischen verstehen...

      Kommentar


      • #4
        vll. ma mit preg_match probieren? (arbeite mich grad rein)

        PHP-Code:
        $query "action=msgdeletemsg;topic=119.0;msg=650";
        preg_match("/=(.*)\;(.*);/i"$query$matches);
        echo 
        $matches[1]; 
        macht aus
        action=msgdeletemsg;topic=119.0;msg=650
        nur
        msgdeletemsg

        Kommentar


        • #5
          hmm ja preg_match() is mächtig wenn man es erstmal verstanden hat... hmm müsste ich mich mal mit beschäftigen das ist sicher die einzige möglichkeit. Da wär dann nur die frage wie kann ich das kombinieren...

          Ich dank dir aber schonmal für deinen Ansatz!!

          Kommentar


          • #6
            Hey,
            jep mit preg_match kannst es sicherlich schaffe. Leider kann ich dir nicht weiterhelfen. Da ich die preg_match funktion seit heute verwende

            Kommentar


            • #7
              Wie wäre es denn mit einfachen Stringfunktionen?

              PHP-Code:
              $query "action=msgdeletemsg;topic=119.0;msg=650";
              $array = array('wort_eins''delete''wort_drei');

              foreach( 
              $array as $search ) {
                 
              $word '';
                 
              $pos strpos$query$search );
                 if( 
              $pos===false ) {
                    
              // nicht gefunden
                    
              continue;
                 }
                 
              // In String vor dem gefundenen Wort nach = suchen
                 // Also das letzte = im String
                 
              $start strrpossubstr$query0$pos ), '=' );
                 
              // $start ist false, also ist dies das erste Wort
                 
              if( $start===false ) {
                    
              $start 0;
                 }
                 
                 
              // In String nach dem ersten ; oder & nach dem Wort suchen
                 
              $semi strpossubstr$query$pos ), ';' );
                 
              $amp strpossubstr$query$pos ), '&' );
                 
              $stop min$semi$amp );
                 
                 
              $word substr$query$start$stop-$start );


              Komplett ungetestet, aber so würde ich es machen, wenn ich keine Regex verwende

              Kommentar


              • #8
                Hier!
                Hab's ausprobiert und funzt!

                PHP-Code:
                <?php

                $query 
                "action=msgdeletemsg;topic=119.0;msg=650";
                $words = array("ac""msg""delete""top""650"".0");
                foreach(
                $words as $word)
                {
                    
                $matches = array();
                    if(
                preg_match("/[=|;|&]?\\w*$word\\w*[=|;|&]?/i"$query$matches))
                    {
                        foreach(
                $matches as $match)
                        {
                            
                $match preg_replace("/[=|;|&]/",""$match);
                            echo 
                "Gefunden für $word$match<br />";
                        }
                    }
                }

                ?>
                Tipp: lern preg_match, weil es sauwichtige Funktionen sind!
                Find Parties?
                Partysuche

                Kommentar


                • #9
                  @ Flip7

                  Saubere sache hatte es noch stundenlang probiert aber so richtig wollte es nicht... mit deiner Variante klapt es super, Danke!

                  Das ich es lernen sollte damit hast du allerdings recht... immer hat das passende zum passendem zeitpunkt lernen

                  Kommentar


                  • #10
                    Flip7, "Tipp: lern preg_match, ..." weil das was du da gebaut hast nicht umbedingt performant und sinnvoll ist.
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar


                    • #11
                      @tontechniker

                      wie dann??? Aufjedennfall ist er der einzige bei dem ich bekommen hab was ich wollte.

                      Kommentar


                      • #12
                        @Flip

                        kannst du es mal so machen das es mit folgendem array auch funktioniert? Bitte!!

                        PHP-Code:
                        $words = array(
                             //start
                             

                            // SZ
                            '<!- ', '->', '$_', '@@', '%22', '`', '"', '%00', '?hl=', '%3fhl=',
                            '<?php', '<?', '?>', '%3C%3Fphp', '%3F>', '%2527', '%27', '\'', '/**/', '/../',
                            
                            // A
                            '&aim', 'alert ', '<applet', 'admin_', 'and ',

                            // B    
                            '/bin/ps', '/bin/echo', '/bin/kill', '/bin/', 'bin/python', 'bin/tclsh', 'bin/nasm', '/bin/mail',
                            'bash_history', '.bash_history', '.bat', 'bulk', 'bulk ', 'behavior: url(xss.htc);',

                            // C
                            'chr(', 'chr=', 'chr ', ' chr', 'cmd=', ' cmd', 'cmd ', 'cp ', ' cp', 'cp(',
                            'chmod(', 'chmod ', ' chmod', 'chmod(', 'chmod=', 'chown ', 'chgrp ', 'chown(', 'chgrp(',
                            '/chgrp', '/chown', '.conf', 'config.php', 'cgi-', 'chunked', '.cmd', '.cgi', 'cgi',
                            'create ', 'cc ', 'cat ', 'char ', 'cat=31337+union',
                            
                            // D
                            '<div', 'diff ', 'db_mysql.inc', 'drop ', 'drop', 'delete ', 'delete', 'document.', 'dynsrc',
                            
                            // E
                            'echr(', ' echr', 'echr ', 'echr=', 'echo', '_env', 'esystem(', 'esystem ', 'etc/', '/etc/password', '/etc/shadow',
                            '/etc/groups', '/etc/gshadow', '.eml', '/etc/passwd', 'eval(', 'eval ', 'exec(', '.exe', '<emded', 'exec',
                            'expression ',  'email@', 'expression(a', 'eval(a+b+c+d);',
                            
                            // F
                            'fopen', 'fwrite', 'file\://', 'file\\://', 'ftp.exe', '~ftp', 'file%5c://', 'fromcharcode',
                            
                            // G
                            'grep ', 'grep(', '$_get', '$get', ' getenv', 'getenv ', 'g\\+\\+', 'g\+\+', 'getenv', '_global', 'global_',
                            'global[', '_globals', 'globals_', 'globals[', 'g%5c', 'g\\', '/groups', '/gshadow', 'goto=http', 'goto=',
                            
                            // H
                            ' hack', 'http_', 'http_php', 'http_user_agent', 'http_host', 'http/1.', '.htpasswd', '.htaccess', '.history',
                            'halt ', '=halt', '/home/ftp', '/home/www', 'http_', 'http request', 'http-equiv',
                            
                            // I
                            'insert ', 'insert into', '&icq', '.inc.php', 'img src', '.inc', 'install.php', 'init ', '<iframe', '<img',
                            'innerhtml', 'innerjoin', 'inner join', 'id ', 'include ', 'include=', 'index.php?error=<',

                            // J
                            'javascript\://', 'javascript:', 'javascript.', 'javascript\\://', '.jsp', '.js', 'jsessionid',
                            
                            // K
                            'kill ', ' kill', 'kill', 'kill(', 'killall',
                            
                             // L
                             'locate ', 'locate(', ' like', 'like ', 'like', 'lsof ', 'load ', 'ls ', 'level=',
                            
                            // M
                            'mail ', 'mdir ', ' mdir', 'mdir(', 'mcd ', 'mrd ', ' mcd', ' mrd', 'mcd(', 'mrd(', 'mcd=', 'mrd=', 'mv ', 'mv(',
                            'motd ', 'mod_gzip_status', '/modules', 'modules/', '/mod', 'mod/', '<meta', 'msdasql','msys', '/mail',
                            'mocha:',        

                            // N
                            'nigga(', ' nigga', 'nigga ', 'nigga', 'new_password', 'nc.exe', '~nobody',
                            
                              // O
                              'org.apache', 'onabort', 'onblur', 'onchange', 'onclick', 'ondblclick', 'ondragdrop', 'onerror',
                            'onfocus', 'onkeydown', 'onkeypress', 'onload', 'onmouse', 'onmove', 'onreset', 'onresize', 'onselect', 'onsubmit',
                            'onunload', 'onreadystatechange', 'objectclass', 'objectcategory', '<object', 'or ', 'openquery', 'openrowset', 'onkeyup',
                            'order=', 'order',
                            
                              // P
                              '/password', 'passwd ', ' passwd', 'passwd(', 'passwd', 'perl ', 'perl', 'ping ', '.pl', 'powerdown ', '/perl',
                            '_php', 'php_', 'phpinfo()', 'phpadmin', 'passthru(', 'popen(', 'phpmyadmin', 'pwd ', 'phpinfo', 'php:',
                            'phpb8b4f2a0', 
                            
                              // R
                            'rush=', ' rush', 'rush ', 'rush', 'rm ', ' rm', 'rm(', 'rmdir ', 'rmdir(', '$_request', '$request', '_request',
                            '~root', 'reboot ', '=reboot', '/robot.txt', 'root_path', 'Redirect 302 /a.jpg',
                            
                            // S
                            'select ', 'select', '.system', 'servlet', 'server-info', 'server-status', 'secure_site', '/servlet/con',
                            'select from', 'select from', 'sql=', '_server', 'server_', 'server[', '.system', 'system(', '.sh', 'setup.php',
                            'sysobjects', 'syscolums', 'syslogins', 'sysxlogins','<script', '<script>','sqloledb', 'secure_site, ok', 'style ', 'shell',
                            'scriptlet.', 'String.fromCharCode', 'says,', 'Set-Cookie', 'sid=<script', 'sid=http', 'sid=//',
                                    
                            // T
                            'telnet ', 'traceroute ', 'tracert ', '<textarea', 'total ', 
                            
                            // U
                            '+UNION+', '/**/UNION', 'UNION/**/', 'union ', ' union', 'union', 'union(', 'union=', '/union', 'uname\\x20-a',
                            'uname\x20-a', '/usr/bin/id', '/usr/bin', '/usr/x11r6/bin/xterm', 'update ', 'uname ',
                            'url ', 'user_type', 'url=data:text/html;base64', 'URL=http://;URL=',

                            // V
                            'vi(', 'vi ', 'vbscript:', 'vbscript.', 'vbscript:msgbox',

                            // W
                            'wget ', ' wget', 'wget', 'wget(', 'window.open', 'wwwacl', 'www/',  

                            // X
                            'xp_enumdsn', 'xp_availablemedia', 'xp_filelist', 'xp_cmdshell', 'x5cx',  'xmlhttp', 'xp_filelist', 'xterm',

                            
                                   // Z


                            //special characters
                            'iso-8859', 'iso-8859-1', 'iso-8859-15', 'utf-8', 'iso-',

                            //special site
                            'yahoo.', 'lycos.', 'fireball.', 'google.',

                            //overall string
                            'phpbb_root_path=http://'    

                            //end
                            );

                        Kommentar


                        • #13
                          Hast du dir meinen Vorschlag mal angesehen?? Lass mal diesen Ansatz und den von Flip7 laufen und mies die Zeit. Denn wenn schon Regex, dann auch richtig und sparsam!

                          Kommentar


                          • #14
                            Naja hatte ich ausprobiert.
                            Da kommt aber folgendes raus:
                            =msgdeletemsg;topic=119.0;m ist also nicht das was ich brauche

                            Kommentar


                            • #15
                              Naja hatte ich ausprobiert.
                              Da kommt aber folgendes raus:
                              =msgdeletemsg;topic=119.0;m ist also nicht das was ich brauche
                              Darum habe ich bei geschrieben, das es ungetestet ist! Sollte ein Denkanstoß sein. Wenn du das Ganze entsprechend anpasst, wirst du auf jeden Fall eine schnellere Lösung als deine geschachtelten Regex haben!!

                              Kommentar

                              Lädt...
                              X