Sécurité

Eléphant du PHP | 369 Messages

29 oct. 2009, 15:19

Re,
Merci pour tes conseils, certainement précieux, mais, franchement, je n'y ai rien compris !!
Je ne suis qu'un bidouilleur pas un programmeur ...
Je vais tenter de faire plus clair:

J'ai été sur ton site et ai remarqué que ton script html est plus qu'invalide puisqu'il est faux.
Des tags inconnus sont présents. Des balises s'ouvrent et se ferment mais le nom du tag diffère...
Désolé, dans le premier post j'ai tenté d'y aller léger mais je vois mal comment, en étant plus clair,
continuer à l'être.

Ensuite sur le script php je mentionnais le fait qu'il valait toujours mieux vérifier tes données. Surtout
celles venant de ton formulaire. En gros: Etre parano !

Pour finir je te conseillais de récupèrer l'IP de celui qui envoye un formulaire dans un champ caché
pour, une fois rapatrié, pouvoir comparer l'heure d'envoi du dit formulaire avec l'heure d'accès du
"méchant hacker présumé" afin de tenter de le tracer et prévenir qui de droit. Avoir le domaine est pas
bien compliquer donc... Faut juste se rappeller qu'un formulaire envoyé l'est probablement par quelqu'un
qui n'y est pour rien.

Enfin, la constituante principale d'un virus c'est de se propager. Son action primaire, en ce cas,
est vérifier s'il est déja présent sur le disque, (c'est généralement ce qu'ils font) s'il ne l'est pas il se
copie. L'idée que je te proposais était de créer un fichier à son nom (avec des chmods corrects) et d'y
placer exit(); comme ca, sil y a vraiment vérification il ne se créra pas... puisque constatant qu'un
fichier de même nom existe déja. Si le fichier est lancé l'éxécution sera juste rendre la main. Solution
basique, nullement parfaite mais les petits rigolos qui font ce genre de conneries (et c'est la majorité)
sont souvent des baleines avec un QI proche de celui d'une huitre, autrement dit je doute qu'ils prennent
la peine de faire d'autres vérifs... ;) Ceci dit, j'écris cela avec l'idée qu'il agit sur ton/tes
sites uniquement à partir d'une porte que tu aurais laissé ouverte dans ton script. Pas s'il a un accès à
ton ftp ou autre et en admétant qu'il ne s'agisse pas du petit frère ou du cousin de Mitnick (joke) ;)

Je te donnais aussi une raison possible à la présence d'un tel fichier: Download de fichiers ciblés.
Technique utilisée par exemple dans les sites de "Q"... Contrairement aux membres qui payent
ceux qui ont accès à ce fichier ont les images gratis. C'est un exemple hein, juste ca ;)

@+ ;)

PS: Il se peut, aussi, que j'ai tout faux. L'est possible que l'ajout de l'entête se soit OVH... va savoir ;)

Mammouth du PHP | 985 Messages

29 oct. 2009, 15:31

Petite précision:
Il faut vérifier et filtrer toutes les données entrantes donc: les $_POST, $_GET et ensuite les requêtes SQL.
Et sécuriser tes scripts de manière général:
Exemples:
- Parfois un simple exit() bien placé -> cela change tout aussi...
- l'utilisation d'un simple elseif à la place d'un autre if.
- L'oublie d'assigner des valeurs par défaut.
- ajouter un simple else
- utiliser un switch pour assigner la valeur d'une variable entrante (quand c'est possible)
...

Ce qui veux dire:
Ne focalise pas que sur le fichier contact.php, mais sur toutes les données entrantes.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 440 Messages

29 oct. 2009, 20:02

Re,
Je vais tenter de faire plus clair:

J'ai été sur ton site et ai remarqué que ton script html est plus qu'invalide puisqu'il est faux.
Des tags inconnus sont présents. Des balises s'ouvrent et se ferment mais le nom du tag diffère...
Désolé, dans le premier post j'ai tenté d'y aller léger mais je vois mal comment, en étant plus clair,
continuer à l'être.
A priori tu as récupéré le code source à partir d'une page en ligne. Comment peux-tu en conclure que le code est faux puisque le code php n'y apparaît pas ?
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 oct. 2009, 20:27

Bon, un problème à la fois s'il vous plait. :non:

On parle d'attaque de site, je doute donc que la validité du code HTML puisse aider le soucis de base.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 369 Messages

29 oct. 2009, 20:32

Re,
Re,
Je vais tenter de faire plus clair:

J'ai été sur ton site et ai remarqué que ton script [*]html[/i] est plus qu'invalide puisqu'il est faux.
Des tags inconnus sont présents. Des balises s'ouvrent et se ferment mais le nom du tag diffère...
Désolé, dans le premier post j'ai tenté d'y aller léger mais je vois mal comment, en étant plus clair,
continuer à l'être.
[*]A priori tu as récupéré le code source à partir d'une page en ligne. Comment peux-tu en conclure que le code est faux puisque le code php n'y apparaît pas ?
@+ ;)

EDIT: @zeus: No offense, j'ai juste fait un paquet global. Une erreur en entraine une autre et dans...
bref, faclie de présumer que diverses autres erreurs sont présentes. Erreurs qui peuveut créer une portre
"dérobée"...

Bon, @+ ;)

Eléphant du PHP | 440 Messages

30 oct. 2009, 19:19

la solution proposée dès le début de ce post semble être la bonne. J'ai modifié les mdp ftp et il n'y a plus d'intrusions.
Débutant complet en php/mysql. Merci pour votre aide.

Mammouth du PHP | 985 Messages

30 oct. 2009, 20:18

Cela m'étonne beaucoup ce que tu racontes là :wink:

Quoi qu'il en soit, si cela est bien la raison, je te conseil de te poser une question qui me parait essentielle:
Comment a-t-il récupéré mon login et mon mot de passe?
Mot de passe ultra-simple?
Oui possible mais pourquoi un hackeur puéril s'embêterait a trouver le mdp de ton compte ftp?...
Car l'opération me semble vraiment loin d'être simple...
Qu'a ton site de si particulier?

Virus Troyen , keylogger...?
Oui, déjà plus probable, tombé par hazard sur ton login et mdp, il en a ensuite profité...

Reste la raison habituelle:
Il a exploité simplement une faille sur ton site web.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Mammouth du PHP | 985 Messages

27 nov. 2009, 16:18

En complément certaines attaques ont été stoppé par ce genre de conf (Stricte):
.htaccess (à la racine du site):

Code : Tout sélectionner

RewriteEngine on RewriteCond %{REQUEST_METHOD} !^(HEAD|GET|POST) [NC] RewriteRule (.*) - [F,L]
(Par exemple pour stopper certaines méthode HTTP fictives utilisées par certains bots....)

[EDIT]

eval() ne peut être désactivé avec disable_functions dans le php.ini
(Comme on le voie souvent sur le net)

Il faut installer suhosin:

Ensuite ajouter dans le php.in:

Code : Tout sélectionner

extension=suhosin.so suhosin.executor.disable_eval = on
http://www.hardened-php.net/suhosin/
http://www.hardened-php.net/suhosin/con ... sable_eval
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.