[Release]Minecraft CMS mit Administration

08/02/2011 20:03 Sp4x18#46
Wie kann ich bitte die Boxen an der seite Bearbeiten hab echt alle phps duchgesucht und nix gefunden ..
08/03/2011 01:09 tunese#47
Cheers!
Erst einmal vielen dank für diesen Upload, jedoch habe ich ein scheinbar massives Problem. Es ist mir gänzlich nicht möglich, mich einzuloggen. Ich habe alles befolgt, habe die neue Datenbank aus dem Edit hochgeladen und importiert, ebenso habe ich die Configs eingestellt. Die Seite wird mir demnach komplett angezeigt, Server Status ebenso. Jedoch kommt jedes mal wenn ich mich einloggen will, die Meldung "Anmeldung fehlgeschlagen!". Habe bereits einen weiteren Benutzer über die Datenbank eingerichtet, doch bei diesem kommt die selbe Meldung.

Woran kann dieses Problem liegen? Gibt es eine Einstellung die ich noch editieren muss um mich einloggen zu können?

Cheers, Tunese!
08/12/2011 23:56 .exTremez™#48
Adde mich mal in ICQ, wenn du möchtest: 133763
Da ich dir gerne bei dem CMS helfen möchte.

Indem ich deine zuvor erstellten Projekte auf Sicherheitslücken untersuche bzw. auch beim erstellen neuer Funktionen helfen kann.


Damit mein Post auch etwas produktives in sich hat:


#####################
# Sicherheitslücke in dem CMS #
#####################

Blind SQLi (In der connexion.php)


XSS (In der contact.php)


EDIT(01:08 - XSS in der membre.php)

EDIT(01:13 - SQLi in der modif_news.php)

EDIT(01:19 - XSS in den News)

EDIT(01:31 - SQLi in der modif_membres.php)
Gleiche wie bei modif_news.php

EDIT(01:50 - Jeder kann die Email von jedem changen)

EDIT(02:01 - MySQL Time based injection in "membres_email2.php")


MFG Padrino
08/13/2011 12:23 .Ownd'#49
Danke das du es Public machst, statt es dem Entwickler weiterzugeben.
08/13/2011 14:24 .exTremez™#50
@Ownd: Das sind Informationen, die jeden zu interessieren haben wenn sie dieses CMS benutzen.
Damit sie wissen, wo der fehler ist.

Entweder dankst du es mir, oder lässt es.

Aber auf die meisten oben genannten lücken wärst du nie selber gekommen, mit deinem Scanner müll....
08/17/2011 17:52 MinecraftDev#51
Ich hatte dem Admin schon geschrieben incl. 2 Fixxes.
Wollte das eigentlich auch schon veröffentlichen, hab es aber gelassen.
Aber wenn das so ist:
Wie ihr diese Lücken ausnutzen könntet, schreibe ich vielleich irgendwann mal hier rein, wenn das CMS gefixxt wurde. Bitte benutzt diese Bugfixes, damit euer System sicher wird und gebt mir - falls möglich - die Kontaktdaten vom dem Ersteller des CMS, damit ich diesen über die Sicherheitslücken aufklären kann.

Als erstes die connexion.php:
  • Einloggen als unregistrierter oder unakzeptierter User möglich (Auch als Admin einloggen möglich)
  • Einloggen als vorhandener Admin möglich
  • ...
Der Scriptersteller hat anscheinend schon mitgedacht - hat letzendes aber schlicht und einfach die falschen Variablen benutzt. Wir ändern das Script daher wie folgt ab:
PHP Code:

if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=htmlentities($_POST['login']);
$passe=htmlentities($_POST['password']);
}
//au minimum
$login=$_POST['login'];
$password2=$_POST['password'];
$password md5($password2);

// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='$login'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
wird zu:
PHP Code:
if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=mysql_real_escape_string($_POST['login']);
$passe=mysql_real_escape_string($_POST['password']);
}

$password md5($passe);

// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='" $pseudo ."'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
Somit haben wir das Login gefixxt. Wer sich das Script genauer anschaut, wird wohl wissen, wo genau der Fehler lag.

(Wichtig: Diese Datei gibt es sowohl in dem Hauptverzeichnis, als auch im Admin-Verzeichnis!!!!)


Kommen wir zur 2ten und 3ten Lücke:

Diese liegen in der "membres_email2" sowie "membres_pass2" Datei.
  • Umändern beliebiger Daten eines beliebigen Users

membres_email2.php:
Einfach öffnen und folgendes abändern:
PHP Code:
$sql="UPDATE membres SET email='$email' WHERE username='$pseudo'"
zu
PHP Code:
$sql="UPDATE membres SET email='" mysql_real_escape_string($email)."' WHERE username='" mysql_real_escape_string($pseudo)."'"
membres_pass2.php:
  • Gleiche wie oben -.-'
PHP Code:

if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=htmlentities($_POST['login']);
$passe=htmlentities($_POST['password']);
}
//au minimum
$login=$_POST['pseudo'];
$password2=$_POST['pass1'];
$password md5($password2);
$newpass md5($_POST['pass2']);


// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='$login'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
zu...
PHP Code:
if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=mysql_real_escape_string($_POST['login']);
$passe=mysql_real_escape_string($_POST['password']);
}

$password md5($passe);

// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='" $pseudo ."'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
und
PHP Code:
mysql_query("UPDATE membres SET password='$newpass' WHERE username='$login'") or die (mysql_error()); 
zu
PHP Code:
mysql_query("UPDATE membres SET password='" mysql_real_escape_string($newpass)."' WHERE username='".mysql_real_escape_string($login)."'") or die (mysql_error()); 
Danke für euer Verständnis :)

Ich hatte dem Admin schon geschrieben incl. 2 Fixxes.
Wollte das eigentlich auch schon veröffentlichen, hab es aber gelassen.
Aber wenn das so ist:
Wie ihr diese Lücken ausnutzen könntet, schreibe ich vielleich irgendwann mal hier rein, wenn das CMS gefixxt wurde. Bitte benutzt diese Bugfixes, damit euer System sicher wird und gebt mir - falls möglich - die Kontaktdaten vom dem Ersteller des CMS, damit ich diesen über die Sicherheitslücken aufklären kann.

Als erstes die connexion.php:
  • Einloggen als unregistrierter oder unakzeptierter User möglich (Auch als Admin einloggen möglich)
  • Einloggen als vorhandener Admin möglich
  • ...
Der Scriptersteller hat anscheinend schon mitgedacht - hat letzendes aber schlicht und einfach die falschen Variablen benutzt. Wir ändern das Script daher wie folgt ab:
PHP Code:

if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=htmlentities($_POST['login']);
$passe=htmlentities($_POST['password']);
}
//au minimum
$login=$_POST['login'];
$password2=$_POST['password'];
$password md5($password2);

// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='$login'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
wird zu:
PHP Code:
if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=mysql_real_escape_string($_POST['login']);
$passe=mysql_real_escape_string($_POST['password']);
}

$password md5($passe);

// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='" $pseudo ."'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
Somit haben wir das Login gefixxt. Wer sich das Script genauer anschaut, wird wohl wissen, wo genau der Fehler lag.

(Wichtig: Diese Datei gibt es sowohl in dem Hauptverzeichnis, als auch im Admin-Verzeichnis!!!!)


Kommen wir zur 2ten und 3ten Lücke:

Diese liegen in der "membres_email2" sowie "membres_pass2" Datei.
  • Umändern beliebiger Daten eines beliebigen Users

membres_email2.php:
Einfach öffnen und folgendes abändern:
PHP Code:
$sql="UPDATE membres SET email='$email' WHERE username='$pseudo'"
zu
PHP Code:
$sql="UPDATE membres SET email='" mysql_real_escape_string($email)."' WHERE username='" mysql_real_escape_string($pseudo)."'"
membres_pass2.php:
  • Gleiche wie oben -.-'
PHP Code:

if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=htmlentities($_POST['login']);
$passe=htmlentities($_POST['password']);
}
//au minimum
$login=$_POST['pseudo'];
$password2=$_POST['pass1'];
$password md5($password2);
$newpass md5($_POST['pass2']);


// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='$login'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
zu...
PHP Code:
if((isset($_POST['login']))&&(isset($_POST['password']))){
$pseudo=mysql_real_escape_string($_POST['login']);
$passe=mysql_real_escape_string($_POST['password']);
}

$password md5($passe);

// On va chercher le mot de passe afférent à ce login
$req mysql_query("SELECT id, username, password, email, rank FROM membres WHERE username='" $pseudo ."'") or die (mysql_error());
$data mysql_fetch_assoc($req); 
und
PHP Code:
mysql_query("UPDATE membres SET password='$newpass' WHERE username='$login'") or die (mysql_error()); 
zu
PHP Code:
mysql_query("UPDATE membres SET password='" mysql_real_escape_string($newpass)."' WHERE username='".mysql_real_escape_string($login)."'") or die (mysql_error()); 
Danke für euer Verständnis :)
08/17/2011 18:13 .Ownd'#52
Ich werde heute das Script etwas umschreiben und einige Lücken fixen inkl. deine.
Danke.
10/03/2011 02:21 Nils94#53
Wie kann ich ein User Admin machen??
10/13/2011 14:32 .exTremez™#54
Indem du als Admin ins Admincp gehst, und dort den user bearbeitest(dort stehen dann Ranks die du ihn geben kannst)

Hier wählst du einfach Admin aus und ende :P
10/21/2011 19:16 KnoxVille™#55
Quote:
Originally Posted by iSeerver View Post
Ich habe meine webseite aber auf bplaced.net und da kann ich das nicht
probier es mal mit MySQL ? zieh dir xampp ;) für die cms in den Htdocs ordner ein erstell ne db auf [Only registered and activated users can see links. Click Here To Register...] und gut ist ;)
10/24/2011 22:25 DODO1001#56
hey

ich hab alles gemacht wie da steht und hab eigendlich alles richtig gemacht was mache ich falch : [Only registered and activated users can see links. Click Here To Register...]
10/29/2011 01:26 jeffrey1253#57
Sehr gute abreit hat bestimmt lange gedauert
10/30/2011 16:25 KnoxVille™#58
wo kann ich user bestätigen D;?
10/30/2011 18:55 .Ownd'#59
#script Updated
#Sicherheitslücken fixed
10/31/2011 08:47 Whitelol#60
Wir füge ich neue News hinzu????