Langue
🎨 Skin viewer
Galeries Photo

Bartok2

Index du forum »»  Road map développement »» [Résolu] - Ghost formulaire dans user

[Résolu] - Ghost formulaire dans user#1477

5Contributeur(s)
jpbNicolas2tutonpdsutilisateurVisiteur
2 Modérateur(s)
phrjpb
jpb jpbicon_post
bon nouveau test

l'utilisateur est bien créé dans la base mais le process est bien interrompu à l'étape de connection par l'erreur de décrytage !!!
le process est donc perturbé (lors de cet essai) ou pas (lors d'essai précedent) par l'affichage de l'erreur (ici sur le labo avec les paramètre de report d'erreur du grab_globals ==> donc avec les paramètre par defaut de grab_globals cette erreur ne sera pas affichée mais perturbera probablement la suite du process aussi)

Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format. in /home/users/i/infocapagde/www/NPDS/labo/user.php on line 260

donc ce comportement est à tester

NB / j'avais chercher pour cette fameuse erreur mais ma conclusion avait été qu'il fallait changer la méthode d'encryptage ! (argghhhh) qui souffre semble de vieillesse.....
https://stackoverflow.com/questions/36056241/crypt-fallback-for-old-hash-salts-in-php7
https://wordpress.org/support/topic/wp_debug-php-deprecated-crypt/
etc ...

L'eau goutte à  goutte finit toujours par percer la pierre...
 Message édité par : jpb / 05-03-2021 08:27
 Message édité par : jpb / 05-03-2021 08:48
 Message édité par : jpb / 05-03-2021 08:55
npdsutilisateur npdsutilisateuricon_post
Ce serait donc un PB antérieur aux retouches actuelles alors (???). 🥴
jpb jpbicon_post
pour moi oui !
pour résumé je pense que le gros boulot fait hier pour le patch des formulaire fantôme fonctionne !

mais en testant beaucoup on a c'est donc bien aperçu que cette erreur du crypt (qui est apparu avec les versions récentes de php) est bien présente et nous pose _parfois en fonction de paramètre divers_ des problèmes ! ...
https://labo.infocapagde.com/viewtopic.php?topic=1120&forum=18&ancre=1&start=0#1811205692

L'eau goutte à  goutte finit toujours par percer la pierre...
 Message édité par : jpb / 05-03-2021 09:10
 Message édité par : jpb / 05-03-2021 09:13
Nicolas2 Nicolas2icon_post
pas de rapport avec le problème mais tu a deux foi la même ligne userCheck => user.php ligne 258 et 260



$stop=userCheck($uname, $email);
$user_regdate = time()+((integer)$gmt*3600);
$stop=userCheck($uname, $email);


je n'arrive pas a reproduire la notice sur

Deprecated: crypt(): Supplied salt is not valid for DES. Possible bug in provided salt format. in /home/users/i/infocapagde/www/NPDS/labo/user.php on line 260
jpb jpbicon_post
merci nico corrigé !

pour avoir la notice choisi un mot de pass commençant par exemple par un # (et bien sur le rapport d'erreur dans le grabglobal doit etre ==>)


   // Modify the report level of PHP

// error_reporting(0);// report NO ERROR
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); // Devel report
//error_reporting(E_ERROR | E_WARNING | E_PARSE); // standard ERROR report
error_reporting(E_ALL);
L'eau goutte à  goutte finit toujours par percer la pierre...
jpb jpbicon_post
voici donc le code pour le patch
si le referrer est vide ou pas comforme à ce qu'il devrait etre (+ plus notre clef)
on écrit donc l'incident dans le log
on incrémente le banissement de l'ip
on affiche notre mécontentement lol
on tue le script !

et donc au bout de 5 essai l'ip envoyante sera banie !!!


 

global $NPDS_Prefix, $makepass, $system, $adminmail, $sitename, $AutoRegUser, $memberpass, $gmt, $NPDS_Key, $nuke_url;

if(!isset($_SERVER['HTTP_REFERER'])) {
Ecr_Log('security','Ghost form in user.php registration. => NO REFERER','');
L_spambot('',"false");
!!!include!!!('admin/die.php');
die();
}
else if ($_SERVER['HTTP_REFERER'].$NPDS_Key !== $nuke_url.'/user.php'.$NPDS_Key) {
Ecr_Log('security','Ghost form in user.php registration. => '.$_SERVER["HTTP_REFERER"],'');
L_spambot('',"false");
!!!include!!!('admin/die.php');
die();
}

L'eau goutte à  goutte finit toujours par percer la pierre...
 Message édité par : jpb / 06-03-2021 10:18
 Message édité par : jpb / 06-03-2021 10:19
Nicolas2 Nicolas2icon_post
résultat après nouveau teste lancer
icon_pieces jointes Pièces jointes 1
path test.PNG path test.PNG
jpb jpbicon_post
excellent comme ca les deux if ont été controlé (car moi je ne sais pour quel raison je n'envoi pas de referrer lol ... donc c'est mûr !!!!!
L'eau goutte à  goutte finit toujours par percer la pierre...
Nicolas2 Nicolas2icon_post
une bonne chose de fait et qui permet de bien corrigé cette faille, oui je pense que le patche est bien mûr...

bon boulot 🤪
 Message édité par : Nicolas2 / 06-03-2021 11:18
jpb jpbicon_post
après la ballade de pré couvre feu lol
je suis entrain de finaliser le fichier text pour le patch que je mettrai sur npds en téléchargement et dans le forum et on fera une courte news pour inciter les webmaster à l'appliquer

ensuite je modifie github une release 16.2.1
voici le fichier patch vos avis ....??? que je n'ai pas fait de boulette et que ce soit assez clair sans expliqué bien entendu la procédure ....

bon quand je reviens de la douche j'espère avoir des retours 😀






/************************************************************************/
/* DUNE by NPDS */
/* =========================== */
/* */
/* Patch sécurité ghostform */
/* For NPDS REvolution 13, REvolution 16 à 16.2 */
/* */
/* NPDS Copyright (c) 2001-2021 by Philippe Brunier */
/* */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 3 of the License. */
/* */
/* 06/03/2021 : by @nicolas2 @jpb @npdstesteur */
/************************************************************************/

Problème :
sécurité

Description :
faille permettant la création d'utilisateur hors de tout contrôle voire attaque xss !

Versions concernées :
de 13 à 16.2 et très probablement toutes les versions antiques ...

Niveau :
sérieux

Fichier concerné :
user.php

Application du patch :

REvolution 13
sélectionner les lignes 209 et 210

global $NPDS_Prefix;
global $makepass, $system, $adminmail, $sitename, $AutoRegUser, $memberpass, $gmt;

=> Remplacer par :

global $NPDS_Prefix, $makepass, $system, $adminmail, $sitename, $AutoRegUser, $memberpass, $gmt, $NPDS_Key, $nuke_url;

if(!isset($_SERVER['HTTP_REFERER'])) {
Ecr_Log('security','Ghost form in user.php registration. => NO REFERER','');
L_spambot('',"false");
!include!('admin/die.php');
die();
}
else if ($_SERVER['HTTP_REFERER'].$NPDS_Key !== $nuke_url.'/user.php'.$NPDS_Key) {
Ecr_Log('security','Ghost form in user.php registration. => '.$_SERVER["HTTP_REFERER"],'');
L_spambot('',"false");
!include!('admin/die.php');
die();
}

REvolution 16 toutes versions

=> Trouver et sélectionner les lignes

function finishNewUser($uname, $name, $email, $user_avatar, $user_occ, $user_from, $user_intrest, $user_sig, $user_viewemail, $pass,$user_lnl, $C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$M1,$M2,$T1,$T2,$B1) {
global $NPDS_Prefix;
global $makepass, $system, $adminmail, $sitename, $AutoRegUser, $memberpass, $gmt;

=> Remplacer par :

function finishNewUser($uname, $name, $email, $user_avatar, $user_occ, $user_from, $user_intrest, $user_sig, $user_viewemail, $pass,$user_lnl, $C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$M1,$M2,$T1,$T2,$B1) {
global $NPDS_Prefix, $makepass, $system, $adminmail, $sitename, $AutoRegUser, $memberpass, $gmt, $NPDS_Key, $nuke_url;

if(!isset($_SERVER['HTTP_REFERER'])) {
Ecr_Log('security','Ghost form in user.php registration. => NO REFERER','');
L_spambot('',"false");
!include!('admin/die.php');
die();
}
else if ($_SERVER['HTTP_REFERER'].$NPDS_Key !== $nuke_url.'/user.php'.$NPDS_Key) {
Ecr_Log('security','Ghost form in user.php registration. => '.$_SERVER["HTTP_REFERER"],'');
L_spambot('',"false");
!include!('admin/die.php');
die();
}



L'eau goutte à  goutte finit toujours par percer la pierre...