Register for your free account! | Forgot your password?

You last visited: Today at 08:01

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] Zwangs Passwortänderung

Discussion on [Release] Zwangs Passwortänderung within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1
 
elite*gold: 20
Join Date: Aug 2012
Posts: 714
Received Thanks: 1,168
[Release] Zwangs Passwortänderung

Hallo e*pvp,

Da ja in letzter Zeit immer mehr Server gehackt werden und oftmals nur die account.sql released werden hatte ich vor einige Zeit mal das Skript für Shiro2 gemacht.

Es ist so aufgebaut das man die Account-ID braucht, das Passwort, ein Charakternamen und die Anzahl der Charaktere. Sollte alles stimmen wird das Passwort geändert und der Accountstatus geht zurück auf OK.

Ihr fügt die sysbugpwchange.php in eurem Pages Ordner ein. Ihr müsst ggf. anpassung an eurem Design machen.

Anschließend öffnet ihr die head.inc.php im inc Ordner und fügt dort das ein:
PHP Code:
  if($_POST["sysbug"] == && isset($_POST['submit']) && $_POST['submit']=="Passwort bearbeiten") {
    if(
checkAnum($_POST['npass']) && !empty($_POST['opass']) && (!empty($_POST['npass']) && strlen($_POST['npass'])>=&& strlen($_POST['npass'])<=16) && $_POST['npass']==$_POST['npass2'] && !empty($_POST["charcount"])) {
            
        
$oldPass mysql_real_escape_string($_POST['opass']);
        
$newPass mysql_real_escape_string($_POST['npass']);
        
$charname mysql_real_escape_string($_POST['char']);
                
        
$sqlCmd "SELECT id,login FROM account.account WHERE password=PASSWORD('".$oldPass."') AND id='".$_SESSION['user_id']."' and status='BUSY' LIMIT 1";
        
$sqlQry mysql_query($sqlCmd,$sqlServ);
                
        if(
mysql_num_rows($sqlQry)==1) {
            if(
$oldPass == $newPass) {
                
$message '<p class="meldung">Du kannst nicht das gleiche Passwort nochmal verwenden!</p>';
            } else {
                
$obj_row mysql_fetch_object($sqlQry);
                
                
$sql "SELECT `name` FROM `player`.`player` WHERE `account_id`='" $obj_row->id "'";
                
$result_count mysql_query($sql);
                
                
$sql "SELECT `name` FROM `player`.`player` WHERE `account_id`='" $obj_row->id "' and `name`='" $charname "'";
                
$result mysql_query($sql$sqlServ);
                if(
mysql_num_rows($result) > || mysql_num_rows($result_count) == 0) {
                    if(
mysql_num_rows($result_count) == ($_POST['charcount'] == $_POST['charcount']))
                    {
                        
$passCmd "UPDATE account.account SET password=PASSWORD('".$newPass."'), status='OK' WHERE id='".$_SESSION['user_id']."' LIMIT 1;";
                        
$passUpdate mysql_query($passCmd,$sqlServ);
                                
                        if(
$passUpdate) {
                            
$message '<p class="meldung">Passwort erfolgreich geändert.</p>';
                            unset(
$_SESSION['need_pwchange']);
                        }
                        else {
                            
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p>';
                        }
                    } else {
                        
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Die Anzahl der Characktere ist falsch!</p>';
                    }
                } else {
                    
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Es existiert kein Charackter auf diesen Account mit dem Namen!</p>';
                }
            }
        }
        else {
          
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Dein altes Passwort ist falsch!</p>';
        }
    } else {
        
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Es wurden nicht alle Daten korrekt eingegeben.</p>';
    }
  } 
Am besten ganz oben aber hinterm <?PHP

So nun sucht ihr nach
PHP Code:
$getAdmin mysql_fetch_object($sqlQry); 
und ersetzt den unteren Teil mit:
PHP Code:
        if($getAdmin->status == "BUSY") {
            
$_SESSION['need_pwchange'] = true;
        }
        if(
$getAdmin->status != "BLOCK") {
            
$_SESSION['user_id'] = $getAdmin->id;
            
$_SESSION['user_name'] = $getAdmin->login;
            
$_SESSION['user_admin'] = $getAdmin->web_admin;
            
$_SESSION['user_coins'] = $getAdmin->coins;            
            
$_SESSION['user_vote_coins'] = $getAdmin->vote_coins;
            
$_SESSION['user_email'] = $getAdmin->email;
        } 
Jeder Account der den Status BUSY drin hat muss vorher das machen. Ihr könnt auf euren Pages z.B. noch eine Meldung einbauen das würde so gehen:
PHP Code:
    if(!empty($_SESSION['need_pwchange'])) {
        echo 
'<b style="color: red;">Durch eine Sicherheitslücke im System, seid ihr gezwungen euer Passwort zu ändern dies erledigt Ihr hier, nach der &Auml;nderung könnt ihr euch wieder Ingame in euren Account einloggen. WICHTIG: Bitte verwendet keine Account-Details die Ihr bereits verwendet habt. <br><a href="index.php?s=sysbugpwchange">Passwort ändern.</a></b>';
    } 
Denke das ganze sollte verständlich sein. Sollte noch jemand fragen dazu haben kann er sich gerne wieder bei mir melden.

Statusmeldung beim Einloggen(danke an .Avenue™)

Gruß,
Chuck Norris.

P.S: Query um Status auf BUSY zu setzen:
PHP Code:
UPDATE `account`.`accountSET `status`='BUSY' WHERE `status`='OK'
Attached Files
File Type: rar sysbugpwchange.rar (1.0 KB, 50 views)
'ChuckNorris is offline  
Thanks
33 Users
Old 07/20/2013, 02:36   #2


 
Zevion's Avatar
 
elite*gold: 906
Join Date: Sep 2009
Posts: 17,295
Received Thanks: 4,400
Großen Dank an dich!
Du versuchst wenigstens etwas gegen die Hacker zu unternehmen.
Man merkt, dass du sehr gegen dieses "Hacken" bist, was ich sehr gut finde.

Schönes Release!
Zevion is offline  
Thanks
4 Users
Old 07/20/2013, 02:45   #3
 
elite*gold: 215
Join Date: Mar 2013
Posts: 1,032
Received Thanks: 886
Super Release Yissu danke dir.
Hoffe es hört auf mit dem "Hacken" & "DDoSen".
Silver™ is offline  
Thanks
3 Users
Old 07/20/2013, 02:47   #4
 
Coniesan's Avatar
 
elite*gold: 1000
Join Date: Mar 2009
Posts: 1,408
Received Thanks: 1,006
Joa ganz nett, nur nützt es leider nicht all zu viel gegen Hacker!
Wenn einer die hashes gebrutet hat und der User seine Mail und das PW evtl noch bei Skype oder sogar PayPal nutzt, dann ist sein Metin2 Account das kleinste Problem!
Ich würde einfach die Leute dazu zwingen PW's zu nutzen, die aus:
min. 6 Buchstaben (groß & klein)
min. 3 Zahlen
min. 1 Sonderzeichen
bestehen! Sodass die Wahrscheinlichkeit, dass das PW in einem der "bekannten" Hash "Decode" Seiten oder in einer Wordlist vorhanden ist, sinkt!
Coniesan is offline  
Thanks
3 Users
Old 07/20/2013, 02:50   #5
 
ebert.tonna's Avatar
 
elite*gold: 50
Join Date: Nov 2009
Posts: 865
Received Thanks: 1,228
Da erwartest du zuviel das die User ein Verständnis für Passwort Sicherheit entwickeln.
Ich habe Spieler die zocken seit 3 Jahren und haben Passwörter und SF Fragen wie aus Kindertagen.
ebert.tonna is offline  
Old 07/20/2013, 02:50   #6


 
.Zemer's Avatar
 
elite*gold: 300
The Black Market: 127/0/0
Join Date: Oct 2012
Posts: 3,964
Received Thanks: 823
ein Release, welches Chuck Norris würdig ist
Echt nice -danke
.Zemer is offline  
Old 07/20/2013, 02:51   #7
 
elite*gold: 20
Join Date: Aug 2012
Posts: 714
Received Thanks: 1,168
Quote:
Originally Posted by Coniesan View Post
Joa ganz nett, nur nützt es leider nicht all zu viel gegen Hacker!
Wenn einer die hashes gebrutet hat und der User seine Mail und das PW evtl noch bei Skype oder sogar PayPal nutzt, dann ist sein Metin2 Account das kleinste Problem!
Ich würde einfach die Leute dazu zwingen PW's zu nutzen, die aus:
min. 6 Buchstaben (groß & klein)
min. 3 Zahlen
min. 1 Sonderzeichen
bestehen! Sodass die Wahrscheinlichkeit, dass das PW in einem der "bekannten" Hash "Decode" Seiten oder in einer Wordlist vorhanden ist, sinkt!
Das ist schon klar dient ja auch nur als Schutz der Accounts auf dem eigenen Server. Vielleicht kommt bald noch eine Funktion die beim registrieren das Passwort prüft und schaut ob das in Hash-Tables ist und wenn es drin ist das man es nicht nutzen kann.
'ChuckNorris is offline  
Old 07/20/2013, 02:59   #8
 
Coniesan's Avatar
 
elite*gold: 1000
Join Date: Mar 2009
Posts: 1,408
Received Thanks: 1,006
Naja aber welche Hash table willst du da verwenden?
Außerdem, wenn du ne ordentliche nimmst (so 25GB+) dann wünsch ich den Spielern viel Spaß bei der Registrierung (das dauert nämlich ne Weile....!)
Wie gesagt, man zwinge den Spieler einfach sich ein GESCHEITES Passwort zu erstellen, und wenn man es ihnen in das PW Feld als Vorschlag gleich rein generiert (weil se selbst zu unkreativ sind)
Coniesan is offline  
Old 07/20/2013, 03:01   #9
 
elite*gold: 20
Join Date: Aug 2012
Posts: 714
Received Thanks: 1,168
Quote:
Originally Posted by Coniesan View Post
Naja aber welche Hash table willst du da verwenden?
Außerdem, wenn du ne ordentliche nimmst (so 25GB+) dann wünsch ich den Spielern viel Spaß bei der Registrierung (das dauert nämlich ne Weile....!)
Wie gesagt, man zwinge den Spieler einfach sich ein GESCHEITES Passwort zu erstellen, und wenn man es ihnen in das PW Feld als Vorschlag gleich rein generiert (weil se selbst zu unkreativ sind)
Keiner von den wannabes die hier die Server hacken verfügen über so große Hash-Tables xD

Aber egal ist ja im Prinzip Eigenverantwortung der User.
'ChuckNorris is offline  
Old 07/20/2013, 06:11   #10
 
Showt!me's Avatar
 
elite*gold: 11
Join Date: Jun 2011
Posts: 210
Received Thanks: 67
Quote:
Originally Posted by Coniesan View Post
Joa ganz nett, nur nützt es leider nicht all zu viel gegen Hacker!
Wenn einer die hashes gebrutet hat und der User seine Mail und das PW evtl noch bei Skype oder sogar PayPal nutzt, dann ist sein Metin2 Account das kleinste Problem!
Ich würde einfach die Leute dazu zwingen PW's zu nutzen, die aus:
min. 6 Buchstaben (groß & klein)
min. 3 Zahlen
min. 1 Sonderzeichen
bestehen! Sodass die Wahrscheinlichkeit, dass das PW in einem der "bekannten" Hash "Decode" Seiten oder in einer Wordlist vorhanden ist, sinkt!
Naja ein PW aus 6Ziffern,3Zahlen und 1 Sonderzeichen ist ebenfalls kein Problem...

Rootserver her nehmen und die ganze Account.sql bzw die Hashes bruten.



b2t: ein kleiner Fortschritt für die Probleme.
Thx
Showt!me is offline  
Old 07/20/2013, 06:45   #11



 
`zuppie´'s Avatar
 
elite*gold: 0
The Black Market: 113/0/0
Join Date: Mar 2011
Posts: 2,812
Received Thanks: 2,681
Ein .CH mit Hirn - riecht noch jemand Hoffnung?

Sehr schönes und nutzvolles Release - danke.
`zuppie´ is offline  
Thanks
2 Users
Old 07/20/2013, 07:11   #12
 
Red Firestar's Avatar
 
elite*gold: 0
The Black Market: 185/0/0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
Quote:
Originally Posted by .CHuckNorris View Post
Hallo e*pvp,

Da ja in letzter Zeit immer mehr Server gehackt werden und oftmals nur die account.sql released werden hatte ich vor einige Zeit mal das Skript für Shiro2 gemacht.

Es ist so aufgebaut das man die Account-ID braucht, das Passwort, ein Charakternamen und die Anzahl der Charaktere. Sollte alles stimmen wird das Passwort geändert und der Accountstatus geht zurück auf OK.

Ihr fügt die sysbugpwchange.php in eurem Pages Ordner ein. Ihr müsst ggf. anpassung an eurem Design machen.

Anschließend öffnet ihr die head.inc.php im inc Ordner und fügt dort das ein:
PHP Code:
  if($_POST["sysbug"] == && isset($_POST['submit']) && $_POST['submit']=="Passwort bearbeiten") {
    if(
checkAnum($_POST['npass']) && !empty($_POST['opass']) && (!empty($_POST['npass']) && strlen($_POST['npass'])>=&& strlen($_POST['npass'])<=16) && $_POST['npass']==$_POST['npass2'] && !empty($_POST["charcount"])) {
            
        
$oldPass mysql_real_escape_string($_POST['opass']);
        
$newPass mysql_real_escape_string($_POST['npass']);
        
$charname mysql_real_escape_string($_POST['char']);
                
        
$sqlCmd "SELECT id,login FROM account.account WHERE password=PASSWORD('".$oldPass."') AND id='".$_SESSION['user_id']."' and status='BUSY' LIMIT 1";
        
$sqlQry mysql_query($sqlCmd,$sqlServ);
                
        if(
mysql_num_rows($sqlQry)==1) {
            if(
$oldPass == $newPass) {
                
$message '<p class="meldung">Du kannst nicht das gleiche Passwort nochmal verwenden!</p>';
            } else {
                
$obj_row mysql_fetch_object($sqlQry);
                
                
$sql "SELECT `name` FROM `player`.`player` WHERE `account_id`='" $obj_row->id "'";
                
$result_count mysql_query($sql);
                
                
$sql "SELECT `name` FROM `player`.`player` WHERE `account_id`='" $obj_row->id "' and `name`='" $charname "'";
                
$result mysql_query($sql$sqlServ);
                if(
mysql_num_rows($result) > || mysql_num_rows($result_count) == 0) {
                    if(
mysql_num_rows($result_count) == ($_POST['charcount'] == $_POST['charcount']))
                    {
                        
$passCmd "UPDATE account.account SET password=PASSWORD('".$newPass."'), status='OK' WHERE id='".$_SESSION['user_id']."' LIMIT 1;";
                        
$passUpdate mysql_query($passCmd,$sqlServ);
                                
                        if(
$passUpdate) {
                            
$message '<p class="meldung">Passwort erfolgreich geändert.</p>';
                            unset(
$_SESSION['need_pwchange']);
                        }
                        else {
                            
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p>';
                        }
                    } else {
                        
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Die Anzahl der Characktere ist falsch!</p>';
                    }
                } else {
                    
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Es existiert kein Charackter auf diesen Account mit dem Namen!</p>';
                }
            }
        }
        else {
          
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Dein altes Passwort ist falsch!</p>';
        }
    } else {
        
$message '<p class="meldung">&Auml;ndern fehlgeschlagen.</p><p class="meldung">Es wurden nicht alle Daten korrekt eingegeben.</p>';
    }
  } 
Am besten ganz oben aber hinterm <?PHP

Jeder Account der den Status BUSY drin hat muss vorher das machen. Ihr könnt auf euren Pages z.B. noch eine Meldung einbauen das würde so gehen:
PHP Code:
    if(!empty($_SESSION['need_pwchange'])) {
        echo 
'<b style="color: red;">Durch eine Sicherheitslücke im System, seid ihr gezwungen euer Passwort zu ändern dies erledigt Ihr hier, nach der &Auml;nderung könnt ihr euch wieder Ingame in euren Account einloggen. WICHTIG: Bitte verwendet keine Account-Details die Ihr bereits verwendet habt. <br><a href="index.php?s=sysbugpwchange">Passwort ändern.</a></b>';
    } 
Denke das ganze sollte verständlich sein. Sollte noch jemand fragen dazu haben kann er sich gerne wieder bei mir melden.

Gruß,
Chuck Norris.

P.S: Query um Status auf BUSY zu setzen:
PHP Code:
UPDATE `account`.`accountSET `status`='BUSY' WHERE `status`='OK'
Danke damit du es Public machst.
Werden die meisten gebrauchen können.
Red Firestar is offline  
Old 07/20/2013, 08:58   #13
 
.J3lυє's Avatar
 
elite*gold: 111
Join Date: Jun 2013
Posts: 774
Received Thanks: 271
Quote:
Originally Posted by `zuppie´ View Post
Ein .CH mit Hirn - riecht noch jemand Hoffnung?

Sehr schönes und nutzvolles Release - danke.
möchte ja nix sagen aber Chuck ist raus von .CH siehe HP von .CH xD denke ich zumindest ;D
.J3lυє is offline  
Thanks
1 User
Old 07/20/2013, 09:08   #14
 
Stαgє6's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 2,019
Received Thanks: 1,471
Das Script ist ganz nett und kann zu einem gutenzweck verwendet werden. Schöne arbeit

Quote:
Originally Posted by `zuppie´ View Post
Ein .CH mit Hirn - riecht noch jemand Hoffnung?

Sehr schönes und nutzvolles Release - danke.
Zuppie warst du nicht auch einmal ein .CH auch wenn es unnötig ist ein .CH zu sein aber naja
Stαgє6 is offline  
Thanks
1 User
Old 07/20/2013, 09:50   #15
 
elite*gold: 0
Join Date: Nov 2011
Posts: 279
Received Thanks: 146
Danke für das Release
Hab das schon ähnlich in meinem Script, nur nicht ganz so ausgeprägt.
Mal schaun was ich besser machen kann.
.Avaos is offline  
Reply


Similar Threads Similar Threads
[Zwangs-Release] Injashi Homepage
03/16/2013 - Metin2 PServer Guides & Strategies - 33 Replies
Hallo Leute, da ich gesehen habe das viele, sehr viele Leute meine Gekaufte Homepage Rippen und weiter verkaufen, sehe ich mich gezwungen diese nun öffentlich zu machen. Es handelt sich, wie ihr Sicherlich schon um die Injashi Homepage von Chris ( iKyroja ), welche so Aussieht : http://fc04.deviantart.net/fs71/f/2012/189/3/0/in jashi_webdesign_by_ikyroja-d56g85e.jpg Diese Homepage bietet euch : Komplette anpassung in HTML und CSS. Ein Funktionierender und einfacher jQuery Slider.



All times are GMT +1. The time now is 08:02.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.