Attention ! Votre navigateur (Internet Explorer) présente de sérieuses lacunes en terme de sécurité et de performances, dues à son obsolescence.
En conséquence, ce site n'est plus consultable sur Internet Explorer, nous vous invitons à utiliser un navigateur récent (Firefox, Chrome, Safari, Edge, ...)

Aider moi à trouver la faille

Répondre
Meneur Chaotique Bon PR : 6584

Un truc qui a rien à voir. Depuis qqles jours y'a un pti script kiddie qui nous fait chier à hacker notre forum de notre webzine metal à moi et des potes que vous connaissez sans doute pas. On essaye de trouver la faille et on a déjà des pistes du genre :

seclists.org/fulldisclosure/2006/Sep/0521.html

www.derkeiler.com/Mailing-Lists/Full-Disclosure/2006-09/msg00525.html

ses ip :


1ère fois : 92.16.241.244
2ème fois : 212.183.134.128

En gros il récupère un sessionid et se sert d'une tache pour modifier le forum, et c'est comme ça qu'il usurpe des comptes, dumoins c'est ce qu'on pense actuellement.

Lors des 2 hacks, des avatars ont été modifiés (le mien la premiere fois, et ceux d'orel et ssaul la 2ème), et vu que cet exploit passe pas les avatars pour exécuter du code visiblement, il y a moyen que cela soit cette faille, à vérifier...

si vous avez des questions supplémentaires je suis tout ouie

www.imm3moria.org/forum/

Répondre

"Creativity comes out when something is limited" - Hironobu Sakaguchi

Webmaster Chaotique Bon PR : Infini

On a eu un souci de ce genre récemment, Sielfried saura surement te diriger vers la bonne solution plus que moi ;)

Y a la possibilité d'uploader son propre avatar sur ton forum ?

Répondre

People don't stop playing because they get old, they get old because they stop playing

Meneur Chaotique Bon PR : 6584

ôui et c'est la faille justement

Répondre

"Creativity comes out when something is limited" - Hironobu Sakaguchi

Héros Neutre Bon PR : 7042

Une solution utilisée est d'établir une correspondance ip<->session id et de jarter si ça pète...maintenant j'ai pas fait de prog web depuis des lustres donc il doit y avoir d'autres solutions...

Répondre

A vivre au milieu des fantômes, on devient fantôme soi-même et le monde des démons n'est plus celui des étrangers mais le nôtre, surgi non de la nuit mais de nos entrailles...

Webmaster Chaotique Bon PR : Infini

Y a une autre solution je pense, qui consisterai, lors de l'upload, à vérifier que l'en-tête du fichier image correspond bien à un fichier correspondant.

Genre un jpg qui possède une en-tête pas vraiment "jpg" ça peut se vérifier. Ca ne suffit pas de vérifier l'extension, il vaut mieux surveiller le coeur du fichier ;)

Rien n'empeche de mettre tout ce qu'on veut dans un fichier et le renommer en .cul, ou .zob, .jpg, etc

Répondre

People don't stop playing because they get old, they get old because they stop playing

Webmaster Neutre Mauvais PR : Infini

Bah là apparemment c'est pas un forum à vous, donc la faille vient pas de votre code. Prenez la dernière version, et si ça pète encore, changez de forum.

Sinon en PHP, getimagesize est pas mal pour vérifier qu'une image est bien une image... pas sûr que ce soit 100% fiable (l'idéal serait d'utiliser mimemagic ou un équivalent, y a une extension pour PHP je crois), mais ça l'est déjà nettement + qu'une vérif d'extension.

Répondre

War is not about who's right. It's about who's left.

Meneur Chaotique Bon PR : 6584

oki les gars

on pense migrer ouai vers une autre version

Répondre

"Creativity comes out when something is limited" - Hironobu Sakaguchi

Meneur Chaotique Bon PR : 6584

J'ai effectué une modification sur quelques fichiers source du forum, prout si tu passes par la, tu peux dire à ton pote de jetter un oeil, voir si ces modifications peuvent corriger le problème lié au dernier hacker, la y'a quelques fichiers en question, j'ai récupéré ce fichier de mise à jour manuelle sur un des bulletins de sécurité concernant notre version de forum, après il se peut que le hacker ai utilisé une autre faille je ne suis pas certain, la code qui est proposé effectue une vérification sur la base de la fonction clean_int_array( $array=array() placé dans le ipsclass qui est utilisé en tout temps par toute page du forum :

Les "-" correspondent à la ligne devant être remplacées par la ligne précédée d'un "+"


Création de la fonction clean_int_array

CODE Index: sources/ipsclass.php
===================================================================
--- sources/ipsclass.php        (revision 113)
+++ sources/ipsclass.php        (revision 114)
@@ -2481,7 +2481,7 @@
                                {
                                        foreach( $farray as $id => $stamp )
                                        {
-                                               $this->forum_read[$id] = $stamp;
+                                               $this->forum_read[ intval($id) ] = intval($stamp);
                                        }
                                }
                        }
@@ -3517,7 +3517,31 @@
        }
     }




+ /*-------------------------------------------------------------------------*/
+ // Makes topics read or forum read cookie safe
/*-------------------------------------------------------------------------*/

Sécurisation du cookie forum/topic


CODE
+    /**
+       * Makes int based arrays safe
+       * XSS Fix: Ticket: 243603
+       * Problem with cookies allowing SQL code in keys
+       *
+       * @param        array   Array
+       * @return       array   Array (Cleaned)
+       * @since        2.1.4(A)
+       */
+    function clean_int_array( $array=array() )
+    {
+               $return = array();
+
+               foreach( $array as $k => $v )
+               {
+                       $return[ intval($k) ] = intval($v);
+               }
+
+               return $return;
+       }
+




+ /*-------------------------------------------------------------------------*/
// Makes incoming info "safe"
/*-------------------------------------------------------------------------*/

Sécurisation du cookie des topics

 

CODE

    
Index: sources/action_public/topics.php
===================================================================
--- sources/action_public/topics.php    (revision 113)
+++ sources/action_public/topics.php    (revision 114)
@@ -2273,8 +2273,8 @@
        
         if ( $read = $this->ipsclass->my_getcookie('topicsread') )
         {
-               $this->read_array = unserialize(stripslashes($read));
-        
+               $this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) );
+
                if (! is_array($this->read_array) )
                {
                        $this->read_array = array();


Sécurisation du cookie lié aus derniers topics lus dans le USER CP (panneau de controle)


CODE
----------------------Index: sources/action_public/usercp.php
===================================================================
--- sources/action_public/usercp.php    (revision 113)
+++ sources/action_public/usercp.php    (revision 114)
@@ -3279,6 +3279,7 @@
                        arsort($topics);

                        $topic_array = array_slice( array_keys( $topics ), 0, 5 );
+                       $topic_array = $this->ipsclass->clean_int_array( $topic_array );

                        if ( count( $topic_array ) )
                        {



Idem mais via la recherche

 

CODE
Index: sources/action_public/search.php
===================================================================
--- sources/action_public/search.php    (revision 113)
+++ sources/action_public/search.php    (revision 114)
@@ -87,7 +87,7 @@
    
        if ( $read = $this->ipsclass->my_getcookie('topicsread') )
         {
-               $this->read_array = unserialize(stripslashes($read));
+                       $this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) );
         }
        


Sécurisation du cookie forum

 

CODE          //-----------------------------------------
Index: sources/action_public/forums.php
===================================================================
--- sources/action_public/forums.php    (revision 113)
+++ sources/action_public/forums.php    (revision 114)
@@ -82,7 +82,7 @@
        
         if ( $read = $this->ipsclass->my_getcookie('topicsread') )
         {
-               $this->read_array = unserialize(stripslashes($read));
+               $this->read_array = $this->ipsclass->clean_int_array( unserialize(stripslashes($read)) );
         }
        
         //-----------------------------------------




Bon alors la dedans je ne vois rien concernant l'avatar donc je suis septique (flesh) mais cette modif empeche un type d'injection SQL en tout cas, maintenant je suis curieux d'avoir des avis externes....

Répondre

"Creativity comes out when something is limited" - Hironobu Sakaguchi

Meneur Chaotique Bon PR : 6584

j'ai transmits xD

Répondre

"Creativity comes out when something is limited" - Hironobu Sakaguchi

Répondre à la discussion

Informations ! Vous êtes en mode visiteur ! Si vous le souhaitez, vous pouvez vous connecter afin d'intervenir avec votre personnage.