Aller au contenu
  • Veuillez ne pas poster de message pour but d'insulter, incitation à la haine, propos sexuels et tout autre qui ne respecte pas nos conditions générales !

[R63A] Faille jeton


Tig3r

Messages recommandés

Salut tout le monde !

 

J'écris ce sujet car j'ai un petit soucis au niveau du CMS de mon rétro ;

 

En effet je souhaite faire revivre la R63A. C'est le projet que je tiens à développer avec un ami.

 

J'ai donc décidé d'utiliser GabCMS V0.9. Mais la faille est bien connue.... ?do=check et c'est 20 jetons dans la poche.

 

J'aimerai résoudre cette faille, mais je ne sais pas vraiment comment procéder... J'ai essayer de modifier quelque chose mais ceci n'a pas fonctionné x')

 

PS : je ferai prochainement un sujet pour présenter notre projet R63A.

 

Voici le code de la page.

<?PHP
#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|
#|                                                                        #|
#|           GabCMS - Site Web et Content Management System               #|
#|         Copyright © 2012-2013 - Gabodd Tout droits réservés.           #|
#|																		  #|
#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|#|

	include("./global.php");
	$pagename = "Achat de Jetons";
	$pageid = "jetons";
	
if(!isset($_SESSION['username']))
	{
Redirect("".$url."/index.php");	
	}

 $do = Securise($_GET['do']);
	if($do == "code") {
		$code = Securise($_POST['code']);
			$sql = mysql_query("SELECT * FROM gabcms_jetons WHERE code = '".$code."' AND username = '".$user['username']."'");
			$row = mysql_num_rows($sql);
				if($row > 0) {
				 $c = mysql_fetch_assoc($sql);
					mysql_query("UPDATE users SET jetons = jetons + '".Securise($c['value'])."' WHERE username = '".$user['username']."'");
					mysql_query("DELETE FROM gabcms_jetons WHERE code = '".$code."'");
					$affichage = "<div id=\"purse-redeem-result\"> 
        <div class=\"redeem-error\"> 
            <div class=\"rounded rounded-green\"> 
                Ton code jetons &agrave; &eacute;t&eacute; valid&eacute;! Tu as recu <b>".Securise($c['value'])."</b> jetons.
            </div> 
        </div> 
</div>"; } else {
			$affichage = "<div id=\"purse-redeem-result\"> 
        <div class=\"redeem-error\"> 
            <div class=\"rounded rounded-red\"> 
                Ton code jetons est incorrect.
            </div> 
        </div> 
</div>";
	}
}
if($do == "check"){

//Déclaration des variables
$ident=$idp=$ids=$idd=$codes=$code1=$code2=$code3=$code4=$code5=$datas='';
$idp = 67277;
//$ids n'est plus utilisé, mais il faut conserver la variable pour une question de compatibilité
$idd = 151085;
$ident=$idp.";".$ids.";".$idd;
//On récupère le(s) code(s) sous la forme "xxxxxxxx;xxxxxxxx"
if(isset($_POST['code1'])) $code1 = $_POST['code1'];
if(isset($_POST['code2'])) $code2 = ";".$_POST['code2'];
if(isset($_POST['code3'])) $code3 = ";".$_POST['code3'];
if(isset($_POST['code4'])) $code4 = ";".$_POST['code4'];
if(isset($_POST['code5'])) $code5 = ";".$_POST['code5'];
$codes=$code1.$code2.$code3.$code4.$code5;
//On récupère le champ DATAS"
if(isset($_POST['DATAS'])) $datas = $_POST['DATAS'];
//On encode les trois chaines en URL
$ident=urlencode($ident);
$codes=urlencode($codes);
$datas=urlencode($datas);

/* Envoie de la requête vers le serveur StarPass
Dans la variable tab[0] on récupère la réponse du serveur
Dans la variable tab[1] on récupère l'URL d'accès ou d'erreur suivant la réponse du serveur */
$get_f=@file("http://script.starpass.fr/check_php.php?ident=$ident&codes=$codes&DATAS=$datas");
if(!$get_f)
{
exit("Votre serveur n'a pas accès au serveur de Starpass, merci de contacter votre hébergeur.");
}
$tab = explode("|",$get_f[0]);

if(!$tab[1]) $url = "";
else $url = $tab[1];

// dans $pays on a le pays de l'offre. exemple "fr"
$pays = $tab[2];
// dans $palier on a le palier de l'offre. exemple "Plus A"
$palier = urldecode($tab[3]);
// dans $id_palier on a l'identifiant de l'offre
$id_palier = urldecode($tab[4]);
// dans $type on a le type de l'offre. exemple "sms", "audiotel, "cb", etc.
$type = urldecode($tab[5]);
// vous pouvez &agrave; tout moment consulter la liste des paliers &agrave; l'adresse : http://script.starpass.fr/palier.php

//Si $tab[0] ne répond pas "OUI" l'accès est refusé
//On redirige sur l'URL d'erreur
if(substr($tab[0],0,3) != "OUI")
{
	mysql_query("UPDATE users SET jetons = jetons + 10 WHERE id = '".$user['id']."'");
	mysql_query("UPDATE users SET achat_jetons = achat_jetons + 10 WHERE id = '".$user['id']."'"); 
	header('Location : jetons.php?do=ok');
}
else
{
		header("Location: jetons.php?do=erreur");
		exit;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO 5589-1" /> 
<title><?PHP echo $sitename; ?>: <?PHP echo $pagename; ?></title> 
 
<script type="text/javascript"> 
var andSoItBegins = (new Date()).getTime();
var ad_keywords = "";
document.habboLoggedIn = true;
var habboName = "<?PHP echo $user['username']; ?>";
var habboReqPath = "<?PHP echo $url; ?>";
var habboStaticFilePath = "<?PHP echo $imagepath; ?>";
var habboImagerUrl = "http://www.habbo.com/habbo-imaging/";
var habboPartner = "";
var habboDefaultClientPopupUrl = "<?PHP echo $url; ?>/client";
window.name = "habboMain";
if (typeof HabboClient != "undefined") { HabboClient.windowName = "uberClientWnd"; }
</script> 



<link rel="shortcut icon" href="<?PHP echo $imagepath; ?>favicon.ico" type="image/vnd.microsoft.icon" /> 
<script src="<?PHP echo $imagepath; ?>static/js/libs2.js" type="text/javascript"></script>
<script src="<?PHP echo $imagepath; ?>static/js/visual.js" type="text/javascript"></script>
<script src="<?PHP echo $imagepath; ?>static/js/libs.js" type="text/javascript"></script>
<script src="<?PHP echo $imagepath; ?>static/js/common.js" type="text/javascript"></script>
<script src="<?PHP echo $imagepath; ?>js/tooltip.js" type="text/javascript"></script>

<script src="<?PHP echo $imagepath; ?>static/js/fullcontent.js" type="text/javascript"></script>
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/style.css" type="text/css" />
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/buttons.css" type="text/css" />
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/boxes.css" type="text/css" />
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/tooltips.css" type="text/css" />
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/personal.css" type="text/css" />
<script src="<?PHP echo $imagepath; ?>static/js/habboclub.js" type="text/javascript"></script>
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/minimail.css" type="text/css" />
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/myhabbo/control.textarea.css" type="text/css" />
<script src="<?PHP echo $imagepath; ?>static/js/minimail.js" type="text/javascript"></script>

 

<meta name="description" content="<?PHP echo $description; ?>" /> 
<meta name="keywords" content="<?PHP echo $keyword; ?>" />  
<!--[if IE 8]>
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/ie8.css" type="text/css" />
<![endif]--> 
<!--[if lt IE 8]>
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/ie.css" type="text/css" />
<![endif]--> 
<!--[if lt IE 7]>
<link rel="stylesheet" href="<?PHP echo $imagepath; ?>v2/styles/ie6.css" type="text/css" />
<script src="<?PHP echo $imagepath; ?>static/js/pngfix.js" type="text/javascript"></script>
<script type="text/javascript">
try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}
</script>
 
<style type="text/css">
body { behavior: url(http://www.habbo.com/js/csshover.htc); }
</style>
<![endif]--> 
<meta name="build" content="<?PHP echo $build; ?> >> <?PHP echo $version; ?>" /> 
</head>
<body id="home" class=" "> 
<div id="tooltip"></div>
<div id="overlay"></div> 
<!-- MENU -->
<?PHP include("./template/header.php"); ?>
<!-- FIN MENU -->
<div id="container"> 

	<div id="content" style="position: relative" class="clearfix"> 

    <div id="column1" class="column"> 


			     		
<?php
if($do == "ok"){
$result_texte = "<div id=\"purse-redeem-result\"> 
        <div class=\"redeem-error\"> 
            <div class=\"rounded rounded-green\"> 
              Merci, tu viens de recevoir 20 jetons.
            </div> 
        </div> 
</div>";
}

if($do == "erreur"){
$result_texte = "<div id=\"purse-redeem-result\"> 
        <div class=\"redeem-error\"> 
            <div class=\"rounded rounded-red\"> 
               D&eacute;sol&eacute;, mais le code que tu as donn&eacute; est inccorect !
            </div> 
        </div> 
</div>
";
}

?>
				<div class="habblet-container ">		
						<div class="cbb clearfix blue "> 

							<h2 class="title">Achat de Jetons

							</h2> 

						

 <div class="box-content"> 
Bienvenue &agrave; toi <b><?PHP echo $username; ?></b> sur la page pour acheter des jetons. Pour un prix juste, tu pourras recevoir <b>20 jetons</b> sur ton compte ! Pour acheter des jetons rien de plus simple, suis le formulaire suivant :<br><br>
1/ Saisis-toi de ton téléphone, carte bancaire ou encore ton compte Paypal.<br>
2/ Pour les SMS : Mets le code indiqué sur le script starpass.<br>
   Pour Carte Bancaire et PayPal, voir sur le script.<br>
3/ Mets le code indiqué sur ton téléphone, compte paypal ou ta carte bancaire dans la case prévue &agrave; cet effet.<br><br>
<center>
	<?php echo "<br />"; echo @$result_texte; ?>
	</center>
<div class="error-messages-holder">
<div id="starpass_151085"></div>
<script type="text/javascript" src="http://script.starpass.fr/script.php?idd=151085&amp;datas=&amp;theme=grey_blue_small">
</script>
<noscript>Veuillez activer le Javascript de votre navigateur s'il vous pla&icirc;t.<br />
</noscript>
</div>
</div> 
		</div> 
				</div> 
			<script type="text/javascript">if (!$(document.body).hasClassName('process-template')) { Rounder.init(); }</script> 	
				<script type="text/javascript">if (!$(document.body).hasClassName('process-template')) { Rounder.init(); }</script> 
</div>
<div id="column2" class="column">
               <div class="habblet-container">        
                        <div class="cbb clearfix green ">                                                 
  <h2 class='title'>Votre porte monnaie
                            </h2>
                        <div id="purse-habblet">
                                              <form method="post" action="?do=code" id="vxoucher-form">         
<ul>
    <li class="even icon-purse-jetons">
        <div>Vous avez actuellement:</div>
        <span class="purse-balance-amount"><?PHP echo $user['jetons']; ?> Jetons</span>
    </li>
	    <li class="odd">
        <div class="box-content">
            <div>Entrez votre code jetons:</div>
            <input type="text" name="code" value="" id="purse-habblet-redeemcode-string" class="redeemcode" />&nbsp;
            <input type="image" src="<?PHP echo $imagepath; ?>v2/images/valider.png">
<?PHP if(isset($affichage)) { echo "<br>".$affichage.""; } ?>
        </div>
    </li>
</ul>
	</ul>
</div></div>
<script type="text/javascript">
    new PurseHabblet();

</script>
                </div>
                <script type="text/javascript">if (!$(document.body).hasClassName('process-template')) { Rounder.init(); }</script>                                     
</div>
<!--[if lt IE 7]>
<script type="text/javascript">
Pngfix.doPngImageFix();
</script>
<![endif]--> 
<!-- FOOTER -->
<?PHP include("./template/footer.php"); ?>
<!-- FIN FOOTER -->
<div style="clear: both;"></div>
</div></div></div></div>
<script type="text/javascript"> 
HabboView.run();

</script>
</body> 
</html> 

 

Merci à vous, bonne journée à tous !

Développeur

PHP, Python, Java, NodeJS

Lien à poster
Partager sur d’autres sites

Sinon, pour y aller simple GabCMS est un CMS les plus failleux de la R63A, vaut mieux utiliser un autre CMS moins "dangereux" (donc avec des failles "moins connues")

Lien à poster
Partager sur d’autres sites

à l’instant, KrackWeed a dit :

Sinon, pour y aller simple GabCMS est un CMS les plus failleux de la R63A, vaut mieux utiliser un autre CMS moins "dangereux" (donc avec des failles "moins connues")

Lesquels me conseilles-tu ?

 

Personnellement, j'adore GabCMS, le design est juste magnifique je trouve. T'as vraiment pas de solutions pour la fixer ?

Développeur

PHP, Python, Java, NodeJS

Lien à poster
Partager sur d’autres sites

il y a une heure, Pancani a dit :

Salut,

Ton problème est-il résolu?

 

Ceci est un message automatique.

Oui, je vais prendre en compte ce que m'a dit Kurimi.

 

Je vais l'ajouter sur skype, et je lui poserai des questions si cela ne fonctionne pas.

Développeur

PHP, Python, Java, NodeJS

Lien à poster
Partager sur d’autres sites

Il y a 1 heure, Kurumi Tokisaki a dit :

La faille c'est que sont ?do=check est mal fichus !

et la sécurité du scripts starpass aussi il la mal fait !

 

sa c'est n'importe quoi:


if($do == "check"){ // SA FOU QUOI ICI SA

//BLALAL SCRIPT STARPASS
$ident=$idp=$ids=$idd=$codes=$code1=$code2=$code3=$code4=$code5=$datas='';
$idp = 67277; 
// fin du script

}

 

essaye comme sa:


if(substr($tab[0],0,3) != "OUI") {// si le code est pas bon interdit de donner par do == check

        if($do == "check") { // si c'est code bon, le do == check est valide ! et on donne les jetons
	mysql_query("UPDATE users SET jetons = jetons + 10 WHERE id = '".$user['id']."'");
	mysql_query("UPDATE users SET achat_jetons = achat_jetons + 10 WHERE id = '".$user['id']."'"); 
	header('Location : jetons.php?do=ok');
        }

}else{
	header("Location: jetons.php?do=erreur");
	exit;
     }
}

 

après c'est juste une solutions rapide.

autrement le script de sécurité starpass doit se trouver dans une page seul tel quel: AddPaimentSECU.php

et on appelle la page de validation du jetons depuis la configuration du script de ton document de configuration chez starpass.

et la sa sera sécu. en aucun cas on fait un tel do == check comme sa sur le script... et dans la même pages !

Merci, je ferai les modifications plus tard ^^', je prends en compte ta réponse. Ajoute moi sur skype : fan_green (comme ça je te contact si le problème ne parvient toujours pas à se résoudre ;) )

Modifié par Tig3r06

Développeur

PHP, Python, Java, NodeJS

Lien à poster
Partager sur d’autres sites

    Salut Tig3r06 ,
    Ton sujet a été déplacé pour une des deux raisons suivantes :

    - Ta demande a été résolue.

    - Ton sujet se trouvait dans la mauvaise catégorie.

        
      Ceci est un message automatique.

 

 

signature.png

Lien à poster
Partager sur d’autres sites

à l’instant, Kurumi Tokisaki a dit :

d'accord ^^

je te ajoute plus tard, quand j'aurai retrouver mon compte skype.

Merci c'est gentil ! Bye :D

Développeur

PHP, Python, Java, NodeJS

Lien à poster
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...