[Tool/Web/Other] Panel PHP Y_INI.
#1

Salut tout le monde ! Je refais le tutoriel puisqu'il y avait une faille XSS exploitable et qu'il y a des dйbutants en PHP ici.

Tout d'abord on va commencer par le code [COLOR="RoyalBlue"]HTML[/COLOR], en [COLOR="RoyalBlue"]HTML[/COLOR] pour une connexion on a besoin d'un formulaire.
[COLOR="RoyalBlue"]Un formulaire en HTML se commence avec la balise <form>, oщ l'ont met ensuite les instructions nйcessaires.

Commenзons par crйer cette balise, et ensuite l'instruire (donc lui ajouter des inscructions).

Code:
&lt;form // Ici, on ouvre la balise de formulaire HTML.
action="" // Ici, on dit que le formulaire sera redirigй vers la page "", ici il n'y a rien puisqu'on va mettre notre code PHP
method="POST" // Ici, on indique que le formulaire sera basй sur du POST, et non sur du GET (Le post est une faзon de passer des informations invisible d'une page а l'autre, sans information telles que echo, le get est une faзon de faire passer des informations par URL d'une page а l'autre)
&gt; // On ferme la balise

&lt;input type="text" name="utilisateur" placeholder="Nom d'utilisateur"/&gt;
&lt;input type="password" name="passe" placeholder="Mot de passe"/&gt;
&lt;/form&gt;

Voilа notre code HTML crйй, maintenant on n'a plus qu'а faire le code[/COLOR] [COLOR="Orange"]PHP[/COLOR].

[COLOR="Orange"]Sur mon serveur, je crypt les mots de passe en UDB_HASH, ce qui est simple et rapide (pas le plus sйcurisй, mais c'est dйjа зa). Ce qui est bien avec le UDB_HASH, du cфtй serveur (de jeu) il est facile а introduire et il est seulement en chiffre, contrairement а d'autre hasher tel que MD5. Cфtй PHP, il y a une fonction pour crypter des mots en UDB_HASH.

Nous allons donc commencer par ouvrir la balise PHP et ajouter la fonction UDB_HASH.
(On commence йgalement les sessions pour la suite)

Code:
&lt;?php
session_start();
function udb_hash($buf) {
        $length=strlen($buf);
    $s1 = 1;
    $s2 = 0;
    for($n=0; $n&lt;$length; $n++)
    {
       $s1 = ($s1 + ord($buf[$n])) % 65521;
       $s2 = ($s2 + $s1) % 65521;
    }
    return ($s2 &lt;&lt; 16) + $s1;
} // La fonction udb_hash, exemple d'utilisation : echo udb_hash("mdp");

Maintenant que l'udb est installй nous pouvons commencer а mettre des "si", par exemple :

"Si "utilisateur" et "passe" ont йtй appelйs, on lance le script, voici cette instruction en code :

Code:
if(isset($_POST['utilisateur']) &amp;&amp; isset($_POST['passe'])) {

If = si,
Isset = existe,
$_POST['utilisateur'] = notre input "utilisateur".

Ensuite, on demande а PHP de vйrifier si le fichier "utilisateur".ini existe bien.

Code:
if(!file_exists("linux/scriptfiles/Joueurs/".$_POST['utilisateur'].".ini")) { // Demande si le fichier existe ou pas
          echo "Votre compte n'existe pas."; // Dit а l'utilisateur qu'il n'a pas de compte
} else { // Sinon,

Maintenant, on demande а PHP de charger le fichier de l'utilisateur.

Code:
$inifile = parse_ini_file("linux/scriptfiles/Joueurs/".$_POST['utilisateur'].".ini");

Maintenant qu'il est chargй, on peux vйrifier le mot de passe.

Code:
if(udb_hash(htmlentities($_POST['passe'])) == $inifile['Password']) { // On demande si le mot de passe cryptй est celui qu'il y a dans le fichier ini. (htmlentities est la protection contre les failles XSS)
          $_SESSION['compte'] = $_POST['utilisateur']; // On crйй la session "compte" et on lui indique que pour cet utilisateur, le nom de la session sera le nom de l'utilisateur
                    header('Location: index.php'); // On le redirige vers une page, ici index.php
          } else { echo "Rй-essayez."; } // On lui indique que le mot de passe n'est pas bon
} // On ferme le else { de tout а l'heure.

Et voilа, votre page de connexion est faites, maintenant on va afficher quelques instructions.

Code:
echo $_SESSION['compte']; // Affiche le nom de l'utilisateur
echo $inifile['Level']; // Affiche le niveau de l'utilisateur

Les "echo" avec "$inifile" doivent avoir des instructions que vous avez dans votre fichier .INI.

[/COLOR]

Code complet :

Code:
&lt;form action="" method="POST"&gt;
&lt;input type="text" name="utilisateur" placeholder="Nom d'utilisateur"/&gt;
&lt;input type="password" name="passe" placeholder="Mot de passe"/&gt;
&lt;/form&gt;

if(isset($_POST['utilisateur']) &amp;&amp; isset($_POST['passe'])) {
        if(!file_exists("linux/scriptfiles/Joueurs/".$_POST['utilisateur'].".ini")) {
                                echo "Aucun compte n'existe avec ce nom.";
                } else {      
        $inifile = parse_ini_file("linux/scriptfiles/Players/".$_POST['utilisateur'].".ini");
        function udb_hash($buf) {
            $length=strlen($buf);
            $s1 = 1;
            $s2 = 0;
            for($n=0; $n&lt;$length; $n++)
            {
               $s1 = ($s1 + ord($buf[$n])) % 65521;
               $s2 = ($s2 + $s1) % 65521;
            }
            return ($s2 &lt;&lt; 16) + $s1;
        }
        if(udb_hash(htmlentities($_POST['passe'])) == $inifile['Password']) {
            $_SESSION['compte'] = htmlentities($_POST['utilisateur']);
            header('Location: index.php');
        } else { echo "Rй-essayez."; }

        } }


Bonus : [URL="http://uptobox.com/mlfqlv1fkk0y"]Cliquez ici pour tйlйcharger le panel de Original World RфlePlay.[/URL] (Complet, v0.1)

Voilа, n'hйsitez pas а faire des remarques si j'ai oubliй quelque chose :)
Reply


Messages In This Thread
Panel PHP Y_INI. - by Herka - 06.11.2015, 23:21
Re : Panel PHP Y_INI. - by Sirop - 07.11.2015, 00:08
Re : Panel PHP Y_INI. - by Skinnz - 07.11.2015, 06:37
Re : Panel PHP Y_INI. - by Buthers - 07.11.2015, 08:18
Re : Panel PHP Y_INI. - by Herka - 07.11.2015, 09:59
Re : Panel PHP Y_INI. - by Herka - 07.11.2015, 10:40
Re : Panel PHP Y_INI. - by Buthers - 07.11.2015, 14:32
Re : Panel PHP Y_INI. - by Herka - 07.11.2015, 14:52
Re : Panel PHP Y_INI. - by Buthers - 07.11.2015, 14:59
Re : Panel PHP Y_INI. - by S4t3K - 07.11.2015, 18:38
Re : Panel PHP Y_INI. - by Buthers - 07.11.2015, 19:12
Re: Panel PHP Y_INI. - by Ublunted - 11.11.2015, 07:23
Re: Panel PHP Y_INI. - by zetano - 11.11.2015, 08:14
Re : Re: Panel PHP Y_INI. - by Dutheil - 11.11.2015, 08:17
Re: Panel PHP Y_INI. - by zetano - 11.11.2015, 08:19
Re: Panel PHP Y_INI. - by zetano - 11.11.2015, 08:21
Re : Re: Panel PHP Y_INI. - by Dutheil - 11.11.2015, 08:25
Re: Panel PHP Y_INI. - by zetano - 11.11.2015, 08:32
Re : Panel PHP Y_INI. - by Dutheil - 11.11.2015, 08:42
Re: Panel PHP Y_INI. - by Ublunted - 11.11.2015, 09:09
Re : Re: Panel PHP Y_INI. - by XDamienX007 - 11.11.2015, 09:39
Re : Re: Panel PHP Y_INI. - by Herka - 11.11.2015, 09:56
Re : Panel PHP Y_INI. - by BatTom - 11.11.2015, 10:56
Re : Panel PHP Y_INI. - by Herka - 11.11.2015, 11:07
Re: Panel PHP Y_INI. - by Ublunted - 11.11.2015, 11:39

Forum Jump:


Users browsing this thread: 1 Guest(s)