• STATISTIQUES
  • Il y a eu un total de 1 membres et 5115 visiteurs sur le site dans les dernières 24h pour un total de 5 116 personnes!


    Membres: 2 605
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Sabre Films
    Site de challenge présenté sous la forme d'une quête. Vous êtes un détective et devrez résoudre d...
    Challenges
    [EN] Net Force
    Javascript: 9, Java Applets: 6, Cryptography: 16, Exploits: 7, Cracking: 14, Programming: 13, Internet: 15, Steganograph...
    Challenges
    [FR] Root-me
    Script: 5, Système: 20, Cracking: 16, Cryptanalyse: 17, Programmation: 8, Réaliste: 11, Réseau: 10, Stéganog...
    Challenges
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    Challenges
    [EN] Rosecode
    Programming: 36, Math: 29, Probability: 5, Sequence: 7, Crypto: 4, Brainf**k: 13, TimeRace: 4, Hack: 9
    Challenges
    [EN] Packet Storm
    Packet Storm est un site qui combine nouvelles de la sécurité informatique, téléchargemen...
    Vulnérabilités

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Récuperer le rapport de google sur le niveau de danger d'un site
14-04-2013, 16h37 (Modification du message : 14-04-2013, 16h38 par InstinctHack.)
Message : #1
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
[PHP] Récuperer le rapport de google sur le niveau de danger d'un site
Salut,

Aujourd'hui, je voulais essayer de savoir si tel site est infecter par je ne sais quelle saloperie. J'ai chercher des api, mais rien trouver Sad
Puis j0rn m'as rappelé la page de google qui permet de "scanner un site"
http://www.google.com/safebrowsing/diagn...xemple.tld

Il y as bien une API, mais j'ai pas trop saisi pourquoi on récuperais des fichier binaire, et puis j'ai trouver ça plus fun d'extraire du one-liner de google les informations que je voulais sur le site en question.

Voilà le code (je suis désolé, il n'est pas commenté, mais là, j'en ai trop marre ^^" je partage quand meme )

Code PHP :

<?php
class Safebrowsing
{
        private function retire($string)
        {
                return mb_substr($string,0,mb_strlen($string)-1);
        }

        public function __construct($domain)
        {
                $this->domain=$domain;
        }

        public function verif()
        {
                $domain=$this->domain;
                $data=file_get_contents('http://www.google.fr/safebrowsing/diagnostic?site='.$domain);
       
                $return=array(
                        'malveillant'=>true,
                        'number_activite'=>0,
                        'number_pages_total'=>0,
                        'number_pages_malveillantes'=>0,
                        'last_visit'=>null,
                        'last_malveillant'=>null,
                        'number_trojans'=>0,
                        'number_exploits'=>0,
                        'number_virus'=>0,
                        'number_scripting'=>0,
                        'number_processus'=>0,
                        'number_domains'=>0,
                        'domains'=>array(),
                        'number_domains_intermediaires'=>0,
                        'domains_intermediaires'=>array(),
                        'number_reseaux'=>0,
                        'reseaux'=>array(),
                        'number_sites_infecter'=>0,
                        'sites_infecter'=>array(),
                        'number_domains_infecter'=>0,
                        'domains_infecter'=>array(),
                );
       
                $a=mb_substr($data,mb_stripos($data,'<body>'));#on retire tous ce qu'il y as avant le <body>
                $a=mb_substr($a,mb_stripos($a,'<p class="d"><strong>'));#on retire le superflu
                $a=mb_substr($a,0,mb_stripos($a,'</div></div>')+6);#on retire le superflu
       
                foreach(explode('</p>',$a) as $key=>$value)
                {
                        $value=str_replace(PHP_EOL,'',trim(strip_tags(utf8_encode($value))));
                        if(!in_array($value,
                                array(
                                        "Quel est l'état actuel du site ".$domain.base64_decode("wqA/"),
                                        "Que s'est-il passé lors de la visite de ce site par le robot Google".base64_decode("wqA/"),
                                        "Ce site a-t-il servi d'intermédiaire pour favoriser la propagation de logiciels malveillants".base64_decode("wqA/"),
                                        "Ce site a-t-il hébergé des logiciels malveillants".base64_decode("wqA/"),
                                        base64_decode("w4l0YXBlcyBzdWl2YW50ZXPCoDo="),
                                )
                        ))
                        {
                                if($value=="Ce site n'est actuellement pas répertorié comme suspect.") $return['malveillant']=false;
                                elseif($this->begin($value,"Une activité suspecte sur une partie de ce site a été détectée")) $return['number_activite']=intval(explode(' ',$value)[12]);
                                elseif($this->begin($value,"Sur les "))
                                {
                                        $return['number_pages_total']=intval(explode(' ',$value)[2]);
                                        $return['number_pages_malveillantes']=intval(str_replace(array('(',')'),'',explode(' ',$value)[17]));
                                        $return['last_visit']=str_replace(',','',explode(' ',$value)[45]);
                                        if(stripos($value,"et le dernier contenu suspect sur celui-ci a été détecté le")!==false)
                                        {
                                                $return['last_malveillant']=explode('.',explode(' ',$value)[57])[0];
                                                $list=explode(' ',explode('.',explode(':',$value)[1])[0]);
                                                foreach($list as $key1=>$value1)
                                                {
                                                        $value1=str_replace(array(',','(',')','.'),'',$value1);
                                                        if(in_array($value1,array('trojans','virus','scripting')) ||
                                                                ($value1=='exploits' && $list[$key1-1]!="scripting")
                                                        )
                                                                $return['number_'.$value1]=intval($list[$key1-1]);                                     
                                                }
                                        }
                                        if(stripos($value,"En moyenne, l'infection a entraîné")!==false)
                                                $return['number_processus']=intval(explode(chr(160),explode(' ',$value)[count(explode(' ',$value))-6])[0]);
                                }
                                elseif($this->begin($value,"Des logiciels malveillants sont hébergés sur"))
                                {
                                        $return['number_domains']=intval(explode(' ',$value)[6]);
                                        if(count(explode(' ',$value)>9))$return['domains'][]=$this->retire(explode(' ',$value)[9]);
                                        if(count(explode(' ',$value)>10))$return['domains'][]=$this->retire(explode(' ',$value)[10]);
                                        if(count(explode(' ',$value)>11))$return['domains'][]=$this->retire(explode(' ',$value)[11]);
                                }
                                elseif(explode(' ',$value)[1]=="semblant")//fuck logique
                                {
                                        $return['number_domains_intermediaires']=intval(explode(' ',$value)[0]);
                                        if(isset(explode(' ',$value)[21]))$return['domains_intermediaires'][]=$this->retire(explode(' ',$value)[21]);
                                        if(isset(explode(' ',$value)[22]))$return['domains_intermediaires'][]=$this->retire(explode(' ',$value)[22]);
                                        if(isset(explode(' ',$value)[23]))$return['domains_intermediaires'][]=$this->retire(explode(' ',$value)[23]);
                                }
                                elseif($this->begin($value,"Ce site était hébergé sur"))
                                {
                                        $return['number_reseaux']=intval(explode(' ',$value)[5]);
                                        if(count(explode(',',$value))>1)$return['reseaux'][]=str_replace('y compris ','',explode(',',$value)[1]);
                                        if(count(explode(',',$value))>2)$return['reseaux'][]=explode(',',$value)[2];
                                        if(count(explode(',',$value))>3)$return['reseaux'][]=mb_substr(explode(',',$value)[3],0,mb_strlen(explode(',',$value)[3])-1);
                                }
                                elseif($this->begin($value,"Au cours des"))
                                {
                                        $return['number_sites_infecter']=intval(explode(chr(160),explode(' ',$value)[13])[0]);
                                        if(isset(explode(' ',$value)[16]))$return['sites_infecter'][]=$this->retire(explode(' ',$value)[16]);
                                        if(isset(explode(' ',$value)[17]))$return['sites_infecter'][]=$this->retire(explode(' ',$value)[17]);
                                        if(isset(explode(' ',$value)[18]))$return['sites_infecter'][]=$this->retire(explode(' ',$value)[18]);
       
                                }
                                elseif($this->begin($value,"Oui, ce site a hébergé"))
                                {
                                        $return['number_domains_infecter']=intval(explode(chr(160),explode(' ',$value)[16])[0]);
                                        if(isset(explode(' ',$value)[19]))$return['domains_infecter'][]=$this->retire(explode(' ',$value)[19]);
                                        if(isset(explode(' ',$value)[20]))$return['domains_infecter'][]=$this->retire(explode(' ',$value)[20]);
                                        if(isset(explode(' ',$value)[21]))$return['domains_infecter'][]=$this->retire(explode(' ',$value)[21]);
       
                                }
                        }
                }
                return $return;
        }

        private function begin($string,$search)
        {
                if(mb_substr($string,0,mb_strlen($search))==$search)return true;return false;
        }
}

$site=new Safebrowsing('agrotehnikabg.com');
var_dump($site->verif());
$site=new Safebrowsing('google.com');
var_dump($site->verif());
$site=new Safebrowsing('n-pn.fr');
var_dump($site->verif());
 


PS : je sais, le code fait peur et au moindre changement de google, tout pète :/
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
16-04-2013, 10h15
Message : #2
Booster2ooo Hors ligne
Contributeur
*****



Messages : 165
Sujets : 14
Points: 63
Inscription : Aug 2011
RE: [PHP] Récuperer le rapport de google sur le niveau de danger d'un site
Beau travail, tu as dû te casser la tête. Petite idée, ne serait-ce pas judicieux d'utiliser des expressions régulières plutôt que des substring et des explode pour parser le contenu?
+1 (0) -1 (0) Répondre
16-04-2013, 11h12
Message : #3
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [PHP] Récuperer le rapport de google sur le niveau de danger d'un site
C'était tout à fait possible, mais je sais pas, j'ai préféré cette méthode. (bien que dégeu, je le redis)
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 721 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  Tester les sous-domaines d'un site cacaphonie 5 335 29-12-2014, 04h23
Dernier message: GreenBlood
  [PHP] Récuperer la liste des membres de N-PN avec curl InstinctHack 4 265 13-04-2013, 11h05
Dernier message: supersnail
  [python] Se connecter en s'authentificant à un site InstinctHack 3 197 19-02-2013, 14h06
Dernier message: InstinctHack
  [Php] Profiler son site InstinctHack 0 103 01-12-2012, 12h29
Dernier message: InstinctHack
  [Php] Récuperer value d'une checkbox Atlas 6 239 28-09-2012, 13h31
Dernier message: EpicOut
  [Php] Récupérer la liste des proxys de Hide My Ass Proxies nowz 0 104 18-12-2011, 10h57
Dernier message: nowz

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut