php.de

Zurück   php.de > Lösungen durch Sripte > Scriptbörse

Scriptbörse PHP Lösungen für nen schmalen Taler

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.02.2010, 12:34   #1 (permalink)
Benutzer
 
Registriert seit: 11.12.2009
Beiträge: 79
PHP-Kenntnisse:
Anfänger
Ryuuzaki93 befindet sich auf einem aufstrebenden Ast
Standard Codieren von Texten

Ryu's Coder

Was macht das Script?
Das Skript verwandelt einen String mittels eines Key's in einen Zahlencode.

Was nützt das?
Man kann damit z.B. Passwörter, die in einer Datei abgelegt werden, schützen. Nur mit dem passenden Schlüssel erhält man auch den ursprünglichen Text wieder.

Wie sieht das ganze aus und wie funktioniert das?
Um die Umwandlung zu starten, werden 3 Parameter gebraucht: Der zu codierende Text, der Schlüssen und eine Buchstabenliste. Ich habe euch bereits eine Liste eingefügt, die eigendlich fast alle Symbole die man eingeben kann, enthält:

PHP-Code:
$alphabet = array("0","1","2","3","4","5","6","7","8","9",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","ä","ö","ü",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","Ä","Ö","Ü",
"!","§","$","%","&","/","(",")","=","?","{","[","]","}","\\",".","-","_","#","+","*","~",":","@","²","³"
); 
Wichtig ist, das die Zeichenliste, mit der man den Text encodiert hat, nicht verändert werden darf, damit die decodierung klappt.
Um nun mal zu zeigen, wie das Ganze aussieht, habe ich einmal den Text "Test" (ohne Anführungszeichen) encodiert:

Zitat:
mit Schlüssel 12345
76560:18480:36960:38280

mit Schlüssel 546846541698
127003852800:30656102400:61312204800:63501926400

usw.
Wenn ihr das Script einbindet, dann könnt ihr es wiefolgt aufrufen:
encode($text, $key, $alphabet);
decode($codiert, $key, $alphabet);

Wichtig ist außerdem, das ihr als Schlüssel nur Zahlen nicht mehr als 14 Zeichen verwenden dürft, weil PHP sonst Schwierigkeiten mit der Berechnung hat und 0:0:0:0... rauskommt
Es gilt außerdem zu beachten, das bei der Berechnung keine zu Großen Zahlen herauskommen, weil PHP dann sowas wie 1.3268539623877E+15:3.2027509436945E+14:6.40550188 73891E+14:6.6342698119387E+14 liefert und das dementsprechend nicht weiterverarbeitet werden kann. Also ist z.B. 99999999999999 als Schlüssel untauglich, obwohl es noch unter 15 Zeichen hat.
Das Script muss außerdem in ISO 8859-2 formatiert sein, um die Funktionalität von Umlauten zu gewähren.

Und zuguter Letzt das Script:

PHP-Code:
<?php

$alphabet 
= array("0","1","2","3","4","5","6","7","8","9",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","ä","ö","ü",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","Ä","Ö","Ü",
"!","§","$","%","&","/","(",")","=","?","{","[","]","}","\\",".","-","_","#","+","*","~",":","@","²","³"
);

function 
encode($uc$code$alphabet)
  {
  
$uc htmlentities($uc);
  
  
$uc str_replace("&Auml;""Ä"$uc);
  
$uc str_replace("&auml;""ä"$uc);
  
  
$uc str_replace("&Ouml;""Ö"$uc);
  
$uc str_replace("&ouml;""ö"$uc);
  
  
$uc str_replace("&Uuml;""Ü"$uc);
  
$uc str_replace("&uuml;""ü"$uc);
  
  
$uc str_split($uc);
  
$code str_split($code);
  
$ergebnis = array();
  
  foreach(
$uc AS $bst)
    {
    
//ZIFFER DES BUCHSTABEN ERMITTELN

    
$s_bst array_search($bst$alphabet);
     
    if(
$s_bst == FALSE)
      {
      
$s_bst "error";
      return 
$s_bst;
      }
      
    
// WENN ERMITTELT, CODIEREN
    
    
foreach($code AS $multipl)
      {
      
// FALLS 0 ODER 1 EINGEGEBEN WURDE, WERDEN SIE ERSETZT, WEIL DAS KEINE
      // STARKEN SCHLÜSSEL SIND
      
      
if($multipl == '0')
        {
        
$multipl 10;
        }
      elseif(
$multipl == '1')
        {
        
$multipl 11;
        }
      
      
//DIE VERSCHLÜSSELUNG
      
      
$s_bst $s_bst $multipl;
      
      }
    
$ergebnis[] = $s_bst;
    }
  
$codiert implode(":"$ergebnis);
  return 
$codiert;
  }
  
// DECODIEREN

function decode($c$code$alphabet)
  {
  
$code str_split($code);
  
$code array_reverse($code);
  
  
$c explode(":"$c);
  
$ergebnis = array();
  
  foreach(
$c AS $coded)
    {
    foreach(
$code AS $dekrypt_c)
      {
      
      if(
$dekrypt_c == 0)
        {
        
$dekrypt_c 10;
        }
      elseif(
$dekrypt_c == 1)
        {
        
$dekrypt_c 11;
        }
      
$coded $coded $dekrypt_c;
      }
    
    
$ergebnis[] = $coded;
    }
  
  
// Zahlencode in Buchstaben umwandeln
  
$umw_c 0;
  foreach(
$ergebnis AS $dec_int)
    {
    
$ergebnis[$umw_c] = $alphabet[$dec_int];
    
$umw_c++;
    }  
  
  
$decodiert implode(""$ergebnis);
  return 
$decodiert;
  }

?>
MfG Ryu
Ryuuzaki93 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.02.2010, 13:25   #2 (permalink)
Erfahrener Benutzer
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.357
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Darf man erfahren ob du irgendwie schonmal mit Kryptografie in Kontakt gekommen bist ? Theorie dahinter und so ? Wie sich sichere Algorhytmen auszeichnen, was für Schwächen es gibt, etc ? Mein Bauch sagt Nein.

Verschlüsselung ist ein heikles Thema und da würde ich mich wohl eher auf etwas vernünftiges verlassen, gibt ja genug php-basierte klassen / extensions für sichere kryto über aes, rsa und co.

Weil auf den ersten Blick lässt dein Code schon massive Mängel erkennen.

1) Es arbeitet auf ganz primitiver Zeichenebene anstatt Bit oder Byte-Ebene und stirbt daher einen grausamen Tod mit allen Multibyte-Zeichensätzen.
2) Du bringst in deine encode und decode-funktionen html-kram mit rein der dort nichts zu suchen hat.
3) Du nur Sachen verschlüsseln kannst für die das Alphabet stimmt, sprich man muss die Zeichen die der User beim PW eingeben darf limitieren auf das alphabet und ihm das sagen sonst bekommt er nur doofe fehlermeldungen.
4) Deine Verschlüssellungs-Modi ist ECB, dadurch haben alle gleichen Zeichen den gleichen Code, was das ganze um ein vielfaches einfacher knackbarer macht.
Um das mal mit bildern zu erklären, hier:
Symmetric-key cryptography
Im Absatz: Block cipher modes
Die Bilder vom Pinguin zeigen sehr geht das Problem von ECB.

ttt verschlüsselt mit 0 und 123456789 als Key und deinem alphabet ergibt
290:290:290
bzw.
115758720:115758720:115758720

Alles das gleiche, daher weis ich jetzt schon dass wenn ich 3 mal hintereinander X:X:X hab, es 3 mal das gleiche zeichen ist.

Dank ISO bist du auf 255 Zeichen begrenzt, wovon einige schon wegfallen weil es steuerzeichen sind, andere unwahrscheinlich sind.

Wenn man jetzt ein paar Passwörter hat kann man da mit etwas Buchstabenhäufigkeit – Wikipedia schon eventuell das PW recht einfach knacken ohne großen aufwand.

Die naheligende vermutung, dass wohl die meisten alphabete dann aus einem begrenzten satz an zeichen bestehen (a-zA-Z0-9 + sonderzeichen) und eventuell in alphabetischer reihenfolge vorkommen vereinfachen es dann noch weiter.

5) Deine Verschlüsselung vergrößert den benötigten Speicherplatz für Passwörter mit größer werdendem Nummern-Schlüssel sehr stark

Ein Tip, überlass Kryptographie Leuten die sich damit beschäftigt haben, weil alles andere ist meiner Meinung nach nichts weiter als
Security through obscurity – Wikipedia .
robo47 ist gerade online   Mit Zitat antworten
Alt 08.02.2010, 14:29   #3 (permalink)
Benutzer
 
Registriert seit: 11.12.2009
Beiträge: 79
PHP-Kenntnisse:
Anfänger
Ryuuzaki93 befindet sich auf einem aufstrebenden Ast
Standard

Das sollte ja auch keine Verschlüsseöung werden, wo die Hacker 10 Tage dafür brauchen, also ich hab das nicht für z.B. das LKA vorgesehen. Und meistens reichen doch für Passwörter eh die 255 Zeichen. Und auch sollte das nicht in Datenbanken eingesetzt werden. Damit sollen lediglich Texte geschützt werden, die mit z.B. md5 unbrauchbar wären. Z.B. will ich damit ein PW schützen, was in einer Datei liegt für den Zugang zu MySQL weil mit z.B. md5 das nicht möglich wäre, da es eine entschlüsselung benötigt.
Und wenn du mal links liest: PHP Anfänger - damit will ich andern Anfängern einfach mal ne Möglichkeit geben, sich das anzusehen und einfache Daten zu verschlüsseln. Da es nicht für die Massenanwendung gedacht ist, nützt Buchstabenhäufigkeit auch nicht viel.

Und wo ist da HTML?
Ryuuzaki93 ist offline   Mit Zitat antworten
Alt 08.02.2010, 14:40   #4 (permalink)
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 249
PHP-Kenntnisse:
Anfänger
cetalian befindet sich auf einem aufstrebenden Ast
Standard

Zitat:

Code:
  $uc = htmlentities($uc);
  
  $uc = str_replace("&Auml;", "Ä", $uc);
  $uc = str_replace("&auml;", "ä", $uc);
  
  $uc = str_replace("&Ouml;", "Ö", $uc);
  $uc = str_replace("&ouml;", "ö", $uc);
  
  $uc = str_replace("&Uuml;", "Ü", $uc);
  $uc = str_replace("&uuml;", "ü", $uc);
cetalian ist offline   Mit Zitat antworten
Alt 08.02.2010, 16:12   #5 (permalink)
Moderator
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 5.999
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekannt
Standard

Du kannst in jedem Kryptographiebuch nachlesen dass vor selbst entworfenen Algorithmen massivst gewarnt wird! Nicht umsonst wurden standardisierte Algorithmen über Jahrzehnte hinweg auf Schwachstellen überprüft. Der Einsatz von symmetrischen Verschlüsselungen sollte immer mit einem Standardalgorithmus durchgeführt werden! Vor allem wenn man sich in der Kryptographie nicht auskennt.

Ryu's Coder Cracker

Dein Algorithmus ist z.B. gegen Known-Plaintext Angriffe sehr schwach. Grad bei Zugangsdaten wie du meinst ist es oftmals leicht an so einen Plaintext zu kommen (DB Host ist zum Beispiel meist localhost). Da bei deiner Verschlüsselung auch die Länge des Plaintextes bekannt ist kann man somit auch recht einfach sehen dass es sich um localhost handelt (beide l's erkennt man und beide o's zum Beispiel. Kennt man jetzt noch das Alphabet (das du schon vorgibst) kann man sehr einfach den Key berechnen.

Ich hab eine Funktion geschrieben mit der man recht einfach das zurückrechnen kann. Es ist sogar nicht mal nötig den kompletten Plaintext zu kennen. Es reicht wenn man einen einzigen Buchstaben kennt der überein stimmt.

Beispiel: Ich habe localhost mit dem Passwort 24687 verschlüsselt. Ciphertext ist 56448:64512:32256:26880:56448:45696:64512:75264:77 952.

Angenommen ich weiß jetzt dass das dritte Zeichen ein "c" ist dann gibt meine Funktion folgendes aus:

PHP-Code:
$plaintext "xxcxxxxxx"// nur c ist uns bekannt
$cipher "56448:64512:32256:26880:56448:45696:64512:75264:77952";
// alphabet wie oben

$keys getKeys($plaintext$cipher$alphabet);
var_dump($keys); 
Ausgabe:
Code:
array
  0 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '2335' (length=4)
      'decoded' => string '' (length=0)
  1 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '2' (length=1)
      'decoded' => string '' (length=0)
  2 => 
    array
      'char' => string 'c' (length=1)
      'key' => string '222222237' (length=9)
      'decoded' => string 'localhost' (length=9)
  3 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '21' (length=2)
      'decoded' => string '' (length=0)
  4 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '2335' (length=4)
      'decoded' => string '' (length=0)
  5 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '222' (length=3)
      'decoded' => string '' (length=0)
  6 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '2' (length=1)
      'decoded' => string '' (length=0)
  7 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '22235' (length=5)
      'decoded' => string '' (length=0)
  8 => 
    array
      'char' => string 'x' (length=1)
      'key' => string '2' (length=1)
      'decoded' => string '' (length=0)
Wie du siehst konnte ich bei Zeichen "c" einen entsprechenden Schlüssel berechnen der den kompletten Ciphertext entschlüsseln kann. Der Schlüssel wäre hier: 222222237. Dabei sieht man dein Problem. Du verwendest eine einfache Multiplikation. Daher ist ein Schlüssel 234 das selbe wie 243 oder sogar 2322 oder 2223. Also auch der Originalschlüssel 24687 = 2 22 23 2222 7 (wie oben).

Würde ich den kompletten Plaintext kennen (nicht nur ein Zeichen) würde an allen Stellen der Key berechnet werden, es ist also nur eine einzige Übereinstimmung zwischen Plaintext und meinem "geratenen" Plaintext nötig um deine Verschlüsselung auszuhebeln. Somit wäre es auch möglich einfach mal alle möglichen Buchstaben durchzuprobieren und dann mit den berechneten Schlüsseln dann einfach auszuprobieren welcher der richtige ist.

Hier noch die Funktion zum cracken:
PHP-Code:
function getKeys($plaintext$cipher$alphabet) {
    
$plainchars str_split($plaintext);
    
$cipherchars explode(":"$cipher);
    
    
$result = array();
    for (
$i 0$i count($plainchars); $i++) {
        
$s_bst array_search($plainchars[$i], $alphabet);
        
$number $cipherchars[$i] / $s_bst;
        
$key getDivider($number);
                
        
$result[] =  array(
            
'char' => $plainchars[$i],
            
'key' => $key,
            
'decoded' => decode($cipher$key$alphabet)
        );
    }
    
    return 
$result;
}

function 
getDivider($number) {
    
$result '';
    
$possibleValues = array(2,3,4,5,6,7,8,9,10,11);
    foreach (
$possibleValues as $div) {
        while(
true) {
            if (
$number%$div == 0) {
                if (
$div == 10$result .= 0;
                elseif (
$div == 11$result .= 1;
                else 
$result .= $div;
                
$number /= $div;
            } else {
                break;
            }
        }
    }
    return 
$result;



Deine Verschlüsselung habe ich innerhalb von 30 Minuten geknackt. Und ich habe nur Grundlegende Kenntnisse in Kryptographie. Schon gar nicht davon wie man Algorithmen auf Schwachstellen überprüft oder diese ausnutzt. Von daher solltest du dir wirklich überlegen ob du nicht lieber auf standardisierte Algorithmen ausweichst und nicht deine eigenen implementieren willst.

Geändert von Flor1an (08.02.2010 um 17:05 Uhr).
Flor1an ist offline   Mit Zitat antworten
Alt 08.02.2010, 20:10   #6 (permalink)
Erfahrener Benutzer
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.357
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Ryuuzaki93 Beitrag anzeigen
Das sollte ja auch keine Verschlüsseöung werden, wo die Hacker 10 Tage dafür brauchen, also ich hab das nicht für z.B. das LKA vorgesehen. Und meistens reichen doch für Passwörter eh die 255 Zeichen. Und auch sollte das nicht in Datenbanken eingesetzt werden. Damit sollen lediglich Texte geschützt werden, die mit z.B. md5 unbrauchbar wären. Z.B. will ich damit ein PW schützen, was in einer Datei liegt für den Zugang zu MySQL weil mit z.B. md5 das nicht möglich wäre, da es eine entschlüsselung benötigt.
Und wenn du mal links liest: PHP Anfänger - damit will ich andern Anfängern einfach mal ne Möglichkeit geben, sich das anzusehen und einfache Daten zu verschlüsseln. Da es nicht für die Massenanwendung gedacht ist, nützt Buchstabenhäufigkeit auch nicht viel.

Und wo ist da HTML?
ähm du willst deine zugangsdaten zur datenbank schützen ?
Warum ?
1) Solche Daten sollten so oder so nicht via web erreichbar sein (unterhalb des doc-root liegen oder ordner mit DENY FROM ALL)
2) Wenn dann jemand soweit kommt dass er deine "mysql-zugangs-daten.txt" findet ... wird er wohl auch an deine php-datei kommen wo ja der schlüssel zum entschlüsseln drinstehen muss oder ?

Ansonsten siehe Flor1an, es macht keinen Sinn einen solchen Algo zu verwenden, wenn man sich in der gleichen zeit mit der mcrypt-extension (die bei recht vielen hostern vorhanden ist) oder direkt z.b. einer implementierung von AES in php beschäftigt: phpAES

Das ganze ist nicht böse gemeint, aber gerade Anfänger für die du meinst das zu machen, sollten nicht auf den Trichter kommen sowas zu nutzen oder zu lernen.
robo47 ist gerade online   Mit Zitat antworten
Alt 08.02.2010, 21:09   #7 (permalink)
Benutzer
 
Registriert seit: 11.12.2009
Beiträge: 79
PHP-Kenntnisse:
Anfänger
Ryuuzaki93 befindet sich auf einem aufstrebenden Ast
Standard

Ok, also das ihr das so leicht knackt^^ Nagut. Das Programm was ich schreibe läft ja sowieso mit xampp also werden da A keine Angriffe von außen kommen und B wird niemand an die Daten kommen. Dafür denk ich reicht das aus.
Ryuuzaki93 ist offline   Mit Zitat antworten
Alt 08.02.2010, 21:12   #8 (permalink)
Moderator
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 5.999
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekannt
Standard

Wofür dann verschlüsseln?
Flor1an ist offline   Mit Zitat antworten
Alt 08.02.2010, 22:56   #9 (permalink)
Neuer Benutzer
 
Registriert seit: 22.01.2010
Beiträge: 16
PHP-Kenntnisse:
Fortgeschritten
Basolato ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Falls jemand das Passwort "test123" errrät.
Basolato ist gerade online   Mit Zitat antworten
Alt 08.02.2010, 23:14   #10 (permalink)
Moderator
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 5.999
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekanntFlor1an ist jedem bekannt
Standard

Was? Ob die Daten jetzt im Klartext oder verschlüsselt in der Datei gespeichert sind ist doch völlig egal wenn man eh rät
Flor1an ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[SQL & PHP] Bilder den passenden Texten zuweisen craven-city PHP-Fortgeschrittene 6 18.08.2009 18:07
Umlaute in Texten über mehrere Datenbankfelder ändern Baccu PHP Einsteiger 3 13.08.2009 16:53
Falsche Darstellung von Texten Schmuse Datenbanken 1 12.01.2009 21:46
Mehrdimensionales array als String codieren und wieder auslesen usefullness PHP Tipps 2008 2 09.05.2008 07:15
Textfeld per Javascript codieren und in PHP decodieren Plague PHP Tipps 2007 2 04.04.2007 09:30
Editieren von Texten workaholic PHP-Fortgeschrittene 5 13.01.2005 08:55
Unterschiede zwischen 2 Texten hervorheben? PHP Tipps 2005 9 12.01.2005 11:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zahlencode dechiffrieren, buchstabenhäufigkeit online, str_replace &uuml;, buchstabenhäufigkeit online ermitteln, php html &ouml; decodieren, endschlüsselung zahlencode, buchstabenhäufigkeit aus text ermitteln mit c, kryptologie decodieren, zahlencode 0 1 entschlüsseln, zahlencode null eins entschlüsseln, decodieren zahlencode, string unterschiede hervorheben php, zahlencode in buchstaben umwandeln c, bücher über codieren von texten, buchstabenfolge encodieren, buchstabenhäufigkeit ermitteln, php &ouml decodieren, buchstaben zahlencode kryptologie online, text encodieren, decodieren mit reihenfolge schlüssel online

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum