Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1047 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème grave, fishing, online.net

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème grave, fishing, online.net

n°1500008
kayno
Posté le 07-01-2007 à 15:28:43  profilanswer
 

Bonjour,
 
Un amis pour qui j'ai fait un petit site internet a un problème grave. Il semblerai que des Hackers (il s'agit là d'une réelle fraude donc pardon pour les hacker dans le sens noble du terme) arrivent à placer des fichiers immitant le design de banques (HSBC, etc...) sur son site.
 
Je n'arrive pas à savoir si il s'agit d'un problème de sécurité concernant Online.net (l'hébergeur) ou bien une faille php que j'aurai laissé passer. Le code php  que j'utilise sur les page me sert à inclure une page dans la page principale (du style index.htm?page=cours.htm). Je crain qu'il soit possible qu'ils utilisent cela pour inclure une page à eux et la faire interpréter par le serveur, ce qui leur permet de copier des pages sur notre site.  
 

Citation :

<?  
     if (empty($page)){ $page = "accueil.htm";};
     
     require $page;  
         
     ?>


 
Voilà le code.  
 
Comment sécuriser ?
 
Merci d'avance.

mood
Publicité
Posté le 07-01-2007 à 15:28:43  profilanswer
 

n°1500009
freds45
Posté le 07-01-2007 à 16:09:24  profilanswer
 

Je déplace dans programmation.


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°1500041
smartdevil
V
Posté le 07-01-2007 à 18:01:55  profilanswer
 

tu code présente la faille dite include
 
pour sécuriser un peu plus tu peux rajouter un test du genre if(file_exist($page)) {include ($page);)
 
ceci n'est pas sécurisé sur les serveur php récent alors il te suffit de faire un switch d'action
 
exemple index.php?p=actu ==>
if(isset($page)) {
switch $page {
case 'actu' : include "./actu.php";
}
}

n°1500044
kayno
Posté le 07-01-2007 à 18:11:35  profilanswer
 

Merci pour l'astuce je corrige.
 
J'ai par ailleur ajouté un log des page passées en paramètres pour voir où les pirates vont chercher leur pages à inclure et vous le signaler.

n°1500050
smartdevil
V
Posté le 07-01-2007 à 18:32:06  profilanswer
 

si c'est du fishing sur les sites des banques il y a un gros dispositif derriere il sera impossible pour nous de les remonter :/

n°1501216
kayno
Posté le 10-01-2007 à 13:35:48  profilanswer
 

Bon j'ai corrigé le prb. J'ai inclus le controle que "http://" n'est pas présent dans le parametre. Ca devrai empécher d'aller chercher les pages ailleur que sur mon site. De plus je controle l'existance de la page.
 
Sinon ils procède comme suis (pour info):
 
Ils appellent un script qui se trouve sur ces sites ATTENTION VIRUS:
- http://www.aeroclube-castelobranco [...] x-sux.jpg?
- http://pennmountain.com/media/osx-sux.jpg?
- http://usuarios.lycos.es/poizonbox/r57.txt?

 
C'est un IR shell qui permet de faire des copier, execution de script, etc...


Message édité par kayno le 11-01-2007 à 07:57:40
n°1501217
FlorentG
Unité de Masse
Posté le 10-01-2007 à 13:38:23  profilanswer
 

kayno a écrit :

Voilà le code.  
 
Comment sécuriser ?
 
Merci d'avance.


Note que c'est quand-même la première faille qu'on t'apprend quand tu fais du PHP, regarde un peu tous les articles traitant de la sécurité, y'en a tout plein


---------------
last.fmflickr
n°1501253
kayno
Posté le 10-01-2007 à 14:34:21  profilanswer
 

Vivi mea culpa... j'ai fait ça pour aider vite fait pour un pote et j'ai pas pris soin de vérifier la sécu.
 

n°1501350
chaced
Posté le 10-01-2007 à 16:20:29  profilanswer
 

Sinon pour empecher que ton script incluse des fichiers distants :  
ini_set("allow_url_fopen", "0" );
 
Bon ok c'est un peut bourrin :D
 
Tu peux faire aussi un truc du genre
if(!preg_match('@^[a-z0-9]*\.htm$@i',$page)){$page='acceuil.htm';}


Message édité par chaced le 10-01-2007 à 16:21:15
n°1501353
omega2
Posté le 10-01-2007 à 16:24:03  profilanswer
 

Citation :

"http://"

attention aux serveurs en https ou en ftp.
 

Code :
  1. if(!preg_match('@^[a-z0-9]*\.htm$@i',$page)){$page='acceuil.htm';}


et si le gas a mis son fichier en .txt par exemple?
Finalement le switch est encore le plus sur à condition de prévoir une valeur par défaut.

mood
Publicité
Posté le 10-01-2007 à 16:24:03  profilanswer
 

n°1501359
chaced
Posté le 10-01-2007 à 16:31:35  profilanswer
 

omega2 a écrit :

Citation :

"http://"

attention aux serveurs en https ou en ftp.
 

Code :
  1. if(!preg_match('@^[a-z0-9]*\.htm$@i',$page)){$page='acceuil.htm';}


et si le gars a mis son fichier en .txt par exemple?
Finalement le switch est encore le plus sur à condition de prévoir une valeur par défaut.


 
Ben tu mets une white list moins restrictive :D, le principal c'est surtout d'eviter les .. et les //


Message édité par chaced le 10-01-2007 à 16:32:36
n°1501588
kayno
Posté le 11-01-2007 à 07:57:10  profilanswer
 

Arf merdum. Je ne les ai pas utilisé comme ça directement ^^ c inclus dans un script. tu utilises kel antivirus ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème grave, fishing, online.net

 

Sujets relatifs
[OCAML] (Debutant) Construction d'une liste : ProblemeProblème encodage cyrillique
problème sortie[C#] problème d'inclusion d'une dll
générateur de nombres aléatoires sous Matlab : problèmeProblème formulaire d'upload pour les fichiers > 500 Ko
Voilà, j'ai un problème...Problème en Assembleur
[C++] Probleme : Heap corruption detectedprobleme d'execution sous IE
Plus de sujets relatifs à : Problème grave, fishing, online.net


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR