Mon site ce fait hacker, help

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mon site ce fait hacker, help

Re: Mon site ce fait hacker, help

par Kal747 » 24 juil. 2014, 12:46

Bonjour,

Au delà de la façon de programmer (bien que nécessaire), regardez aussi la protection htaccess :

https://secure.rivalhost.com/knowledgeb ... hacks.html

Une injection SQL se fait en GET ou POST, c'est facilement detectable, c'est une sorte de "pare-feu applicatifs".

Re: Mon site ce fait hacker, help

par dogmongo » 21 juil. 2014, 11:07

Bonjour,

J'ai eu le même problème que toi, le seul conseil que je peu te donner c'est de commencer par changer ta façon de programmer et utiliser des requête préparées, oubli pas nom plus de travail registre global Off et tester toute tes variables.

Le hack de site est très rapide si tu néglige ta façon de programmer et si tu évolue pas, bien entendu c'est 90% des sites de vente en ligne qui ramasse, mais si c'est juste des petit message tu as forte change d'avoir à faire à un petit boutonneux qui veux prouver qu'il le meilleur du monde à ces copains et passe surement par une injection au moment de l'ajout de produit ou autre, si il avait atteint t'a base de donnée il aurait tout effacer.

dog

Re: Mon site ce fait hacker, help

par sirakawa » 15 juil. 2014, 14:49

certains conseillent de ne passer dans la requete que ADM/IN_USER (ici) et de comparer le mot de passe retourné par le SGBD avec celui qui a été saisi.
$query = "SELECT ADMIN_ID FROM administration WHERE ADMIN_USER = '".mysql_real_escape_string($_POST["username"])."' AND ADMIN_MDP = '".mysql_real_escape_string($_POST["password"])."'";

Ceci étant, le hack est difficile à contrôler : aussi bien phpfrance que framasoft que mon propre site (SPIP) qui sont faits avec des CMS différents se font hacker régulièrement..Autre remarque marginale : très beau site que le tien...

Re: Mon site ce fait hacker, help

par onHellworld » 15 juil. 2014, 14:16

Merci pour votre analyse, j'ai déplace l'admin vers un adresse plus compliquée.
De plus tous les mots de passe, user etc. sont complexe.

Si ca peux vous aider je vous met quelques exemple de code, peut-être que vous verrez qqch de suspect :

validation du login a l'admin
<?php include '../include/connexion_db.php'; 
	 
	$query = "SELECT ADMIN_ID FROM administration WHERE ADMIN_USER = '".mysql_real_escape_string($_POST["username"])."' AND ADMIN_MDP = '".mysql_real_escape_string($_POST["password"])."'";
	$result = mysql_query($query);
	
	$row = mysql_fetch_row($result);
	$id = $row[0];
	
	if ($id == '0')
	{
	 	echo "<script language='javascript' type='text/javascript'>\n
		      window.location.replace('home.php');\n
	     	  </script>"; 										  
	
		$_SESSION['login'] = "ok";	
	}
	else
	{		  
	   	echo "<script language='javascript' type='text/javascript'>\n
	 	      window.location.replace('index.php?msg=1');\n
	          </script>"; 
	} 
	
	include '../include/deconnexion_db.php'; 
?>
upload de photos
<?php 
	include '../include/connexion_db.php'; 
	$dest_dossier = '../upload_shop/';
	
	$isOk = 0;
		  
	/***********************************************************************************************************************
	    TRAITEMENT DE LA PHOTO 1
	***********************************************************************************************************************/
	if(isset($_FILES['file']))
	{		
		// formatage nom fichier : enlever les accents, remplacer les caracteres autres que lettres, chiffres et point par _  	
		$timestamp=date("U"); //SECONDES ECOULEES DEPUIS LE 1ER JANVIER 1970
		$dest_fichier = basename($_FILES['file']['name']);
		$dest_fichier = strtr($dest_fichier, '¿¡¬√ƒ≈«»… ÀÃÕŒœ“”‘’÷Ÿ⁄€‹›‡·‚„‰ÂÁËÈÍÎÏÌÓÔÚÛÙıˆ˘˙˚¸˝ˇ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
		$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
			
		if ($dest_fichier != '')												
		{
			// copie du fichier														
			$dest_fichier=$timestamp.'_'.$dest_fichier;
			move_uploaded_file($_FILES['file']['tmp_name'], $dest_dossier . $dest_fichier);	
		}	
		else
			$dest_fichier = ''; 
		
		$queryFree = "SELECT UIS_1, UIS_2, UIS_3, UIS_4, UIS_5 FROM uploadimagesshop WHERE UIS_ID = '0'";
		$resultFree = mysql_query($queryFree);
		$rowFree = mysql_fetch_row($resultFree);
		$image_1 = $rowFree[0]; 
		$image_2 = $rowFree[1];
		$image_3 = $rowFree[2];
		$image_4 = $rowFree[3];
		$image_5 = $rowFree[4];
		 
		
		 
		if (($image_1 == "NA") && ($isOk == 0))
		{		
			$query = "UPDATE uploadimagesshop SET UIS_1 = '$dest_fichier' WHERE UIS_ID = '0'";
			$result = mysql_query($query);
			$isOk = 1;
		}
		if (($image_2 == "NA") && ($isOk == 0))
 		{
			$query = "UPDATE uploadimagesshop SET UIS_2 = '$dest_fichier' WHERE UIS_ID = '0'";
			$result = mysql_query($query);
			$isOk = 1;
		}		  
		if (($image_3 == "NA") && ($isOk == 0))
 		{
			$query = "UPDATE uploadimagesshop SET UIS_3 = '$dest_fichier' WHERE UIS_ID = '0'";
			$result = mysql_query($query);
			$isOk = 1;
		}		
		if (($image_4 == "NA") && ($isOk == 0))
 		{
			$query = "UPDATE uploadimagesshop SET UIS_4 = '$dest_fichier' WHERE UIS_ID = '0'";
			$result = mysql_query($query);
			$isOk = 1;
		}	  
		if (($image_5 == "NA") && ($isOk == 0))
 		{
			$query = "UPDATE uploadimagesshop SET UIS_5 = '$dest_fichier' WHERE UIS_ID = '0'";
			$result = mysql_query($query);
			$isOk = 1;
		}
	}	
	
	echo "<script language='javascript' type='text/javascript'>\n
		 window.location.replace('uploadImages.php');\n
		 </script>";	  							   

include '../include/deconnexion_db.php'; ?>

Modification de produits
<?php 
	include '../include/connexion_db.php'; 
	include 'valid_login.php'; 
	
	if ( isset( $_GET['id'] )) $id = mysql_real_escape_string($_GET['id']);
	
	if ( isset( $_POST['etat'] )) $etat = mysql_real_escape_string($_POST['etat']);
	if ( isset( $_POST['nom'] )) $nom = mysql_real_escape_string($_POST['nom']);
	if ( isset( $_POST['categorie_id'] )) $categorie_id = mysql_real_escape_string($_POST['categorie_id']);
	if ( isset( $_POST['sous_categorie_id'] )) $sous_categorie_id = mysql_real_escape_string($_POST['sous_categorie_id']);
	if ( isset( $_POST['prix_1'] )) $prix_1 = mysql_real_escape_string($_POST['prix_1']);
	if ( isset( $_POST['prix_2'] )) $prix_2 = mysql_real_escape_string($_POST['prix_2']);
	if ( isset( $_POST['prix_3'] )) $prix_3 = mysql_real_escape_string($_POST['prix_3']);
	if ( isset( $_POST['prix_4'] )) $prix_4 = mysql_real_escape_string($_POST['prix_4']);
	if ( isset( $_POST['prix_5'] )) $prix_5 = mysql_real_escape_string($_POST['prix_5']);
	if ( isset( $_POST['contenant_id_1'] )) $contenant_id_1 = mysql_real_escape_string($_POST['contenant_id_1']);
	if ( isset( $_POST['contenant_id_2'] )) $contenant_id_2 = mysql_real_escape_string($_POST['contenant_id_2']);
	if ( isset( $_POST['contenant_id_3'] )) $contenant_id_3 = mysql_real_escape_string($_POST['contenant_id_3']);
	if ( isset( $_POST['contenant_id_4'] )) $contenant_id_4 = mysql_real_escape_string($_POST['contenant_id_4']);
	if ( isset( $_POST['contenant_id_5'] )) $contenant_id_5 = mysql_real_escape_string($_POST['contenant_id_5']);
	if ( isset( $_POST['description'] )) $description = mysql_real_escape_string($_POST['description']);
	
	$query_nbr_entree = "SELECT UIS_1, UIS_2, UIS_3, UIS_4, UIS_5 FROM uploadimagesshop WHERE UIS_ID = '0'";
	$result_nbr_entree = mysql_query($query_nbr_entree);
	$row = mysql_fetch_row($result_nbr_entree);
	$images_1 = $row[0];		
	$images_2 = $row[1];		
	$images_3 = $row[2];		
	$images_4 = $row[3];		
	$images_5 = $row[4];		
	
	$query = "UPDATE shop SET SHOP_ETAT = '$etat', SHOP_NOM = '$nom', SHOP_PRIX_1 = '$prix_1', SHOP_PRIX_2 = '$prix_2', SHOP_PRIX_3 = '$prix_3', SHOP_PRIX_4 = '$prix_4', SHOP_PRIX_5 = '$prix_5', SHOP_CON_1_ID = '$contenant_id_1', SHOP_CON_2_ID = '$contenant_id_2', SHOP_CON_3_ID = '$contenant_id_3', SHOP_CON_4_ID = '$contenant_id_4', SHOP_CON_5_ID = '$contenant_id_5', SHOP_PHOTO_1 = '$images_1', SHOP_PHOTO_2 = '$images_2', SHOP_PHOTO_3 = '$images_3', SHOP_PHOTO_4 = '$images_4', SHOP_PHOTO_5 = '$images_5', SHOP_DESCRIPTION = '$description', SHOP_CAT_ID = '$categorie_id', SHOP_SOUSCAT_ID = '$sous_categorie_id' WHERE SHOP_ID = '$id'";
	$result = mysql_query($query);	

	// VIDAGE DE LA TABLE TEMPORAIRE DES IMAGES
	$queryImage = "UPDATE uploadimagesshop SET UIS_1 = 'NA', UIS_2 = 'NA', UIS_3 = 'NA', UIS_4 = 'NA', UIS_5 = 'NA' WHERE UIS_ID = '0'";
	$resultImage = mysql_query($queryImage);
	
	
	echo "<script language='javascript' type='text/javascript'>\n
		 window.location.replace('shop_edit.php?id=$id&modif_info=edit');\n
		 </script>";		

	include('../include/deconnexion_db.php'); 
?>

contenu de connexion_db.php
<?php
	session_start();

	$db_host = "mysql.olivale.com"; 
	$db_user = "xxxxx";
	$db_pass = "xxxxx";
	$db_name = "xxxxx";	 
	
	mysql_connect($db_host, $db_user, $db_pass);
	mysql_select_db($db_name);	  
?>
Merci pour votre aide !

Re: Mon site ce fait hacker, help

par sirakawa » 15 juil. 2014, 12:41

J'ajouterai que le nom de l'administrateur de Mysql ne devrait être
ni root
ni admin
ni administrateur
ni rien qui vienne à l'esprit d'un francophone ou d'un anglophone
qu'il faut mettre un mot de passe assez complexe...
Je ne sais pas si l'analyse des logs permettrait de voir quelque chose...

Re: Mon site ce fait hacker, help

par moogli » 15 juil. 2014, 11:58

salut,

on ne peux pas trop t'aider comme cela.
sache que le /admin est a éviter, trouve un autre nom de répertoire qui ne correspond à rien de standard.
Il est possible que le "hacker" ai utiliser un "simple" brute force pour trouver une combinaison valide.
as tu essayé de changer les noms d'utilisateur et mot de passe ? (différents des existants, 8 caractères mini pour le mot de passe avec une combinaison alphanumérique, contenant des minuscule et des majuscules. Utilise aussi un caractère de ponctuation ou dans le genre ("~.;,?:/!§ etc etc) cela rendra plus complexe la recherche du mot de passe.

est ce que tu as un fichier de configuration accessible directement par le net ?

as tu des formulaires d'upload ? (si oui il faut vérifier le fonctionnement, est ce que tu laisse la possibilité d'uploader n'importe quoi ou pas etc etc).

globalement sans code on ne peux pas t'aider plus que ce que tu trouvera à l'aide de google ;)

@+

Mon site ce fait hacker, help

par onHellworld » 15 juil. 2014, 08:11

Bonjour, depuis quelques jours je subit des hack sur mon site web. Il doit y avoir une faille de sécurité quelque part mais je n'arrive pas a trouvé ou

Est-ce quelqu'un pourrai m'aider ?

Voici les infos :
Site web : www.olivale.com
System utilisé : c'est du fait maison
Les symptome : Ben quelqu'un arrive a modifier la base de donnée et mettant des truc typique "Hacked by bla bla"...

Comment je ne sais pas, injection SQL, faille dans le login, droit d'acces sur des répertoires d'upload,......
j'ai pourtant vérifié au niveau des injection SQL, je ne vois pas d'erreur

Si quelqu'un est disposé a prendre un peu de temps pour mon problème (et je l'en remercie infiniment d'avance !) dites-moi ce qu'il te faut ?

Merci beaucoup pour votre aide, je ne sais plus quoi faire !
Bonne journée.