[RESOLU] URL bizarre de temps en temps

Avatar du membre
Mammouth du PHP | 1489 Messages

26 oct. 2012, 14:44

Bonjour,

j'ai parfois des url qui ce mette à la place de l'url de mon site, genre:

http://*****.in/index.php?time=102607011584301208&src=137&surl=www.mon-site.com&sport=80&key=4683644A&suri=/ma_page.php

j'ai aussi la même adresse avec ce site: jymgyg.in et un autre aussi dont je me souvient plus l'adressse mais je sais que c'était un ".in"

Merci d'avance pour votre aide

ViPHP
ViPHP | 5924 Messages

26 oct. 2012, 14:55

Bonjour,

Il y a de fortes chances que ton site ait été piraté et que l'attaquant ait inséré une routine modifiant les urls postées sur ton site. En général cela permet d'augmenter le référencement de publicités pour des produits pharmaceutiques ou montres de luxes !
Est-ce que ton site est codé de zéro ou bien est-il fait avec un moteur de blog (wordpress, ...), un CMS (joomla, ...) ou un framework (Zend, ...) ?
Dans le premier cas, cela signifie que tu as des failles de sécurité dans ton code et que tu dois les corriger, dans le second cas les failles de sécurité sont certainement dans l'outil que tu utilises et il est conseillé de le mettre à jour.

Cordialement

Avatar du membre
Mammouth du PHP | 1489 Messages

26 oct. 2012, 15:49

Merci pour ta réponse.

c'est moi qui est créé le site et je pense que ce problème peut venir de mon .htaccess qui est comme ceci:

C'est un code que j'ai copié sur le web

Code : Tout sélectionner

# Exemples : http://blamcast.net/articles/block-bots-hotlinking-ban-ip-htaccess # Exemples : http://www.ybet.be/internet16/05-htaccess.php#domaine # Exemples : http://www.coinduwebmaster.com/bloquer-spambots-aspirateurs-user-agent-htaccess/66/ Options -Indexes Options +FollowSymlinks order allow,deny deny from cuil.com deny from yandex.ru deny from .cn allow from all RewriteEngine On RewriteBase / RewriteCond %{REMOTE_HOST} ^natcrawlbloc.* [OR] RewriteCond %{HTTP_USER_AGENT} VoilaBot [OR] RewriteCond %{HTTP_USER_AGENT} .*Atomic\_Email\_Hunter* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*HTTrack* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*Filangy* [OR] RewriteCond %{HTTP_USER_AGENT} .*BackWeb* [OR] RewriteCond %{HTTP_USER_AGENT} .*BackStreet* [OR] RewriteCond %{HTTP_USER_AGENT} .*Bandit* [OR] RewriteCond %{HTTP_USER_AGENT} .*Baiduspider* [OR] RewriteCond %{HTTP_USER_AGENT} .*BatchFTP* [OR] RewriteCond %{HTTP_USER_AGENT} .*Bullseye* [OR] RewriteCond %{HTTP_USER_AGENT} .*bumblebee* [OR] RewriteCond %{HTTP_USER_AGENT} .*capture* [OR] RewriteCond %{HTTP_USER_AGENT} .*CherryPicker* [OR] RewriteCond %{HTTP_USER_AGENT} .*CherryPickrElite* [OR] RewriteCond %{HTTP_USER_AGENT} .*CherryPickerSE* [OR] RewriteCond %{HTTP_USER_AGENT} .*ChinaClaw* [OR] RewriteCond %{HTTP_USER_AGENT} .*clipping* [OR] RewriteCond %{HTTP_USER_AGENT} .*collage* [OR] RewriteCond %{HTTP_USER_AGENT} .*Collector* [OR] RewriteCond %{HTTP_USER_AGENT} .*Copier* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*Crescent* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*crawler* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*Download* [OR] RewriteCond %{HTTP_USER_AGENT} .*eCatch* [OR] RewriteCond %{HTTP_USER_AGENT} .*exabot* [OR] RewriteCond %{HTTP_USER_AGENT} .*EirGrabber* [OR] RewriteCond %{HTTP_USER_AGENT} .*email* [OR] RewriteCond %{HTTP_USER_AGENT} .*EmeraldShield* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*FlashGet* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*FlickBot* [OR] RewriteCond %{HTTP_USER_AGENT} .*FrontPage* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*GetRight* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*GetSmart* [OR] RewriteCond %{HTTP_USER_AGENT} .*GetWeb* [OR] RewriteCond %{HTTP_USER_AGENT} .*GetWebPage* [OR] RewriteCond %{HTTP_USER_AGENT} .*gigabaz* [OR] RewriteCond %{HTTP_USER_AGENT} .*Go!Zilla* [OR] RewriteCond %{HTTP_USER_AGENT} .*GornKer* [OR] RewriteCond %{HTTP_USER_AGENT} .*gotit* [OR] RewriteCond %{HTTP_USER_AGENT} .*Grabber* [NC,OR] RewriteCond %{HTTP_USER_AGENT} .*GrabNet* [OR] RewriteCond %{HTTP_USER_AGENT} .*hloader* [OR] RewriteCond %{HTTP_USER_AGENT} .*httpdown* [OR] RewriteCond %{HTTP_USER_AGENT} .*InterGET* [OR] RewriteCond %{HTTP_USER_AGENT} .*JustView* [OR] RewriteCond %{HTTP_USER_AGENT} .*kapere* [OR] RewriteCond %{HTTP_USER_AGENT} .*larbin* [OR] RewriteCond %{HTTP_USER_AGENT} .*LeechFTP* [OR] RewriteCond %{HTTP_USER_AGENT} .*LexiBot* [OR] RewriteCond %{HTTP_USER_AGENT} .*Missigua* [OR] RewriteCond %{HTTP_USER_AGENT} .*MSIECrawler* [OR] RewriteCond %{HTTP_USER_AGENT} .*Vampire* [OR] RewriteCond %{HTTP_USER_AGENT} .*NetAnts* [OR] RewriteCond %{HTTP_USER_AGENT} .*NetMechanic* [OR] RewriteCond %{HTTP_USER_AGENT} .*Openfind* [OR] RewriteCond %{HTTP_USER_AGENT} .*PageGrabber* [OR] RewriteCond %{HTTP_USER_AGENT} .*pavuk* [OR] RewriteCond %{HTTP_USER_AGENT} .*pcBrowser* [OR] RewriteCond %{HTTP_USER_AGENT} .*PersonaPilot* [OR] RewriteCond %{HTTP_USER_AGENT} .*PingALink* [OR] RewriteCond %{HTTP_USER_AGENT} .*Python-urllib* [OR] RewriteCond %{HTTP_USER_AGENT} .*PycURL* [OR] RewriteCond %{HTTP_USER_AGENT} .*RealDownload* [OR] RewriteCond %{HTTP_USER_AGENT} .*Reaper* [OR] RewriteCond %{HTTP_USER_AGENT} .*Recorder* [OR] RewriteCond %{HTTP_USER_AGENT} .*ReGet* [OR] RewriteCond %{HTTP_USER_AGENT} .*replacer* [OR] RewriteCond %{HTTP_USER_AGENT} .*SearchExpress* [OR] RewriteCond %{HTTP_USER_AGENT} .*SlySearch* [OR] RewriteCond %{HTTP_USER_AGENT} .*SmartDownload* [OR] RewriteCond %{HTTP_USER_AGENT} .*snagger* [OR] RewriteCond %{HTTP_USER_AGENT} .*Snake* [OR] RewriteCond %{HTTP_USER_AGENT} .*Stripper* [OR] RewriteCond %{HTTP_USER_AGENT} .*Sucker* [OR] RewriteCond %{HTTP_USER_AGENT} .*SuperBot* [OR] RewriteCond %{HTTP_USER_AGENT} .*SuperHTTP* [OR] RewriteCond %{HTTP_USER_AGENT} .*Surfbot* [OR] RewriteCond %{HTTP_USER_AGENT} .*Syntryx* [OR] RewriteCond %{HTTP_USER_AGENT} .*Teleport* [OR] RewriteCond %{HTTP_USER_AGENT} .*Telesoft* [OR] RewriteCond %{HTTP_USER_AGENT} .*NetSpider* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebAuto* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebBandit* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebCapture* [OR] RewriteCond %{HTTP_USER_AGENT} .*Webclipping* [OR] RewriteCond %{HTTP_USER_AGENT} .*webcollage* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebCopier* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebEMailExtrac* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebFetch* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebIndexer* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebLeacher* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebMiner* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebMirror* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebReaper* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebSauger* [OR] RewriteCond %{HTTP_USER_AGENT} .*Website* [OR] RewriteCond %{HTTP_USER_AGENT} .*Webster* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebStripper* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebWhacker* [OR] RewriteCond %{HTTP_USER_AGENT} .*WebZIP* [OR] RewriteCond %{HTTP_USER_AGENT} .*Wget* [OR] RewriteCond %{HTTP_USER_AGENT} .*Whacker* [OR] RewriteCond %{HTTP_USER_AGENT} .*whizbang* [OR] RewriteCond %{HTTP_USER_AGENT} .*Xenu* RewriteRule .* - [F]

ViPHP
ViPHP | 5924 Messages

26 oct. 2012, 18:15

Ce genre de sécurités n'assurent absolument rien. Le user-agent est une information indicative qui n'engage en rien le client.
Tu dois assurer la vraie sécurité de ton site en vérifiant que ton code n'est pas sujet aux injections SQL, aux injections de variable, à l'upload de fichiers ou autres failles. Et il n'y a pas de secret, cela se fait en utilisant des méthodes de développement rigoureuses. Il faut que tu nettoies ton site, et si tu veux éviter que ça recommence, que tu corriges ton code pour le rendre robuste à ce genre d'attaques.

Cordialement

Avatar du membre
Mammouth du PHP | 1489 Messages

26 oct. 2012, 18:38

mes codes ont tout le temps été "robuste" comme tu le dit, genre je vais bien vérifier qu'un champ qui doit contenir un numéro et seulement un numéro est bien que ce soit bien un numéro et pas une lettre.

je vais enlever le code .htaccess que je t'es montré puis voir si le problème revient et ensuite et bien rebelote, vérification de tout le script ^^

ViPHP
ViPHP | 5924 Messages

26 oct. 2012, 19:00

mes codes ont tout le temps été "robuste" comme tu le dit, genre je vais bien vérifier qu'un champ qui doit contenir un numéro et seulement un numéro est bien que ce soit bien un numéro et pas une lettre.
Ok, c'est une bonne pratique effectivement.
Est-ce que également:
  • Tu échappes tes données avec une fonction d'échappement (mysql_escape_string() ou consors) avant utilisation dans une requête SQL ?
  • Tu initialises tes variables avant utilisation ?
  • Tu utilises lors de tes développements un niveau d'erreur (error_reporting) suffisamment haut pour repérer les erreurs non fatales mais potentiellement préjudiciables à la sécurité (valeur à E_ALL) ?
  • Tu as désactivé dans ta configuration de php les fonctionnalités préjudiciables à la sécurité (essentiellement register_globals) ?
Quant au moyen que l'attaquant a pu utiliser pour modifier ton site. Si tu as une page permettant l'upload de fichiers c'est la première chose à vérifier. Si tu as une interface d'administration également. Enfin après si tu trouves le code utilisé pour modifier tes urls ça te donnera déjà un indice significatif.

Dernière chose, le code du site est en général en cause dans ce genre de problèmes, mais pas systématiquement. Cela peut être par brute-force de ton compte FTP ou SSH. Les consignes de sécurité sont assez classiques: un mot de passe robuste, et si tu as un dédié, des logiciels régulièrement mis à jour.

Cordialement

Avatar du membre
Mammouth du PHP | 1489 Messages

26 oct. 2012, 19:45

Quant au moyen que l'attaquant a pu utiliser pour modifier ton site. Si tu as une page permettant l'upload de fichiers c'est la première chose à vérifier. Si tu as une interface d'administration également. Enfin après si tu trouves le code utilisé pour modifier tes urls ça te donnera déjà un indice significatif.
le problème c'est que j'ai vue ces url pas souvent, j'ai bien sur une variable genre $url_site = "l'adresse de mon site" mais elle n'a pas été modifiée.

à la question: "Tu initialises tes variables avant utilisation ?": toujours
à la question: "Tu échappes tes données avec une fonction d'échappement (mysql_escape_string() ou consors) avant utilisation dans une requête SQL ?": non pas vraiment mais je fait en sorte de bien vérifier ce qui est posté avec un preg_match. J'utilise seulement mysql_real_escape_string() pour le pseudo et le mot de passe lors de la connexion
à la question: "Tu as désactivé dans ta configuration de php les fonctionnalités préjudiciables à la sécurité (essentiellement register_globals) ?": je comprend pas trop mais mon hébergeur à, de base, l'option "addslashes()" d'activée

Pour mes formulaire je ré affiche toujours ce que la personne à taper (quand il y a une erreur (genre: un des champs est vide)) et j'utilise:
exemple sur un formulaire:
partie PHP:
if(isset($_POST['message'])) { $RafMessage = $_POST['message']; } else { $RafMessage = ""; }
partie HTML/PHP;
<textarea name="message"><?php echo htmlentities($RafMessage); ?></textarea>
est ce suffisant ?

à la question: "Tu utilises lors de tes développements un niveau d'erreur (error_reporting) suffisamment haut pour repérer les erreurs non fatales mais potentiellement préjudiciables à la sécurité (valeur à E_ALL) ?": j'ai par défaut, un fichier error_log qui est créé si il y a une erreur quelconque

Enfin, je n'ai pas de partie d'upload.

Mammouth du PHP | 1511 Messages

27 oct. 2012, 20:23

Inclus-tu un javascript d'un site tiers ? Tes pages n'auraient elles pas été modifiées pour ajouter un code malicieux, en passant par ton ftp par exemple ?
Verifie tous tes fichiers à la recherche d'un code qui n'est pas le tien, dossier par dossier, fichier par fichier.
Ce type de hack peut permettre de voler les données que tes utilisateurs entrent sur ton site.
Si tu as une sauvegarde locale de tes fichiers, mets la en place, mais avant, change ton mot de passe ftp.

Avatar du membre
Mammouth du PHP | 1489 Messages

29 oct. 2012, 10:41

pas de code malicieux null part, aucune page n'a été modifiée et j'ai encore été victime d'un site en .in nommé dangereux par google:

http://****.in/index.php?time=102907131177240450&src=137&surl=www.mon-site.com&sport=80&key=D1AD89C&suri=/

Ya til la possibilité de bloquer les adresses en .in via le .htaccess ?

ViPHP
ViPHP | 5924 Messages

29 oct. 2012, 10:51

Est-ce que tu rencontres le problème sur un autre ordinateur que le tien ?

Avatar du membre
Mammouth du PHP | 1489 Messages

29 oct. 2012, 10:57

ça serai difficile à dire mais je pense pas car je n'ai eu aucun retour à ce sujet donc il est possible que ce soit un "adware (peut être, j'y connais rien)" ou une autre connerie du genre, non :?:

ViPHP
ViPHP | 2577 Messages

29 oct. 2012, 11:03

Bonjour,

Ces urls proviennent d'ou ?
Tu les vois lorsque tu navigues sur ton sites ou dans les stats ?

Si c'est dans tes stats, c'est "normal", c'est des tentatives de piratage et ca arrive souvent.

ViPHP
ViPHP | 5924 Messages

29 oct. 2012, 11:05

ça serai difficile à dire mais je pense pas car je n'ai eu aucun retour à ce sujet donc il est possible que ce soit un "adware (peut être, j'y connais rien)" ou une autre connerie du genre, non :?:
En effet, n'hésite pas à faire une passe avec un anti-{ad,spy}ware.

Avatar du membre
Mammouth du PHP | 1489 Messages

29 oct. 2012, 11:27

ok, tu me recommande un logiciel en particulier ?

ViPHP
ViPHP | 5924 Messages

29 oct. 2012, 11:33

ok, tu me recommande un logiciel en particulier ?
Je suis sur Mac OS X donc je ne sais plus trop ce qu'il y a sur Windows. Peut être adaware si ma mémoire est bonne.