Outils d'utilisateurs

Outils du Site


hackingweek_2014:web:web2

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

hackingweek_2014:web:web2 [2014/03/06 17:20]
telnes
hackingweek_2014:web:web2 [2017/04/09 15:33] (Version actuelle)
Ligne 5: Ligne 5:
  
 code index.php code index.php
- 
 <code html> <code html>
 <?php session_start(); ?> <?php session_start(); ?>
Ligne 225: Ligne 224:
 Pour accéder à la page success.php qui provoque le "**cataclysme**" il faut que la condition ($query == "taagle") soit validé dans la fonction search_query($query). Pour accéder à la page success.php qui provoque le "**cataclysme**" il faut que la condition ($query == "taagle") soit validé dans la fonction search_query($query).
  
-Analyse des différents filtre effectué sur $query: 
  
  
 +Première analyse des filtres effectués en début de code sur $query ($_GET):
  
-Première analyse des filtres effectués en début de code : 
 $query = htmlspecialchars($_GET['query'], ENT_QUOTES, 'ISO-8859-1'); $query = htmlspecialchars($_GET['query'], ENT_QUOTES, 'ISO-8859-1');
   * http://us3.php.net/manual/fr/function.htmlspecialchars.php fonction PHP qui permet de convertir les caractères &<>'" en leur équivalent HTML   * http://us3.php.net/manual/fr/function.htmlspecialchars.php fonction PHP qui permet de convertir les caractères &<>'" en leur équivalent HTML
Ligne 235: Ligne 233:
   * http://us3.php.net/manual/fr/function.strtolower.php fonction PHP qui permet de mettre une chaine en minuscule   * http://us3.php.net/manual/fr/function.strtolower.php fonction PHP qui permet de mettre une chaine en minuscule
 $query = truncate_query($query); $query = truncate_query($query);
-  * fonction définie dans le code qui permet de tronquer une chaine à 50 caractère max.+  * fonction définie dans le code qui permet de tronquer une chaine à 50 caractères max.
 $query = forbidden_query($query); $query = forbidden_query($query);
   * fonction définie dans le code qui permet d'obfusquer (masquer) une chaine si elle contient des mots clés (google,taagle,bing...)   * fonction définie dans le code qui permet d'obfusquer (masquer) une chaine si elle contient des mots clés (google,taagle,bing...)
 $query = filter_query($query); $query = filter_query($query);
   * fonction définie dans le code qui permet de remplacer "\r", "\n", "\t", "\\" par "\n" et de conserver que la première partie    * fonction définie dans le code qui permet de remplacer "\r", "\n", "\t", "\\" par "\n" et de conserver que la première partie 
 + 
 +
 +
 + 
      
-   +La fonction search_query est appelé via "$results = search_query($query);" après l'appel des filtres.
-La fonction search_query est appelé via +
  
-$results = search_query($query); 
  
-après l'appel des filtres. 
  
 Si on entre le mot clé "taagle" dans le champs de recherche nous avons en résultat "$�=" ce qui est pas top :) (l'obfuscation fonctionne bien) Si on entre le mot clé "taagle" dans le champs de recherche nous avons en résultat "$�=" ce qui est pas top :) (l'obfuscation fonctionne bien)
Ligne 277: Ligne 276:
 si l'on fait  si l'on fait 
  
-filter_query("test\t taagle");//test taagle+filter_query("test\t taagle");test taagle
  
 va retourné $�/eJ.�25 car la présence du mot clé "taagle" nous fait entrer dans la fonction d'obfuscation. va retourné $�/eJ.�25 car la présence du mot clé "taagle" nous fait entrer dans la fonction d'obfuscation.
  
-il faut donc faire un script qui poster une chaine de caractère de la forme :+il faut donc faire un script qui poste une chaine de caractère de la forme :
  
-<caractère> \t taagle+<caractères> \t taagle
  
-ou l'on fait une itération sur <caractère> (caractère ascii 00 caractère ascii 01 caractère ascii 02 ....) jusqu'a l'obtention d'un t+ou l'on fait une itération sur chaque <caractère> (caractère ascii 00 caractère ascii 01 caractère ascii 02 ....) jusqu'a l'obtention d'un **t**
  
-puis on cherche le deuxième caractère qui donne un a ... et ainsi de suite.+puis on cherche le deuxième caractère qui donne un **a** ... et ainsi de suite.
  
  
Ligne 293: Ligne 292:
  
 le code se résume à "$start.$char.'taagle'" le code se résume à "$start.$char.'taagle'"
-$start = le début de la chaine (vide au début) +  * $start = le début de la chaine (vide au début) 
-$char = itération pour chercher +  * $char = itération pour chercher 
-'taagle' = pour forcer l'obfuscation+  * 'taagle' = pour forcer l'obfuscation
  
 <code php> <code php>
 <?php <?php
-//url du moteur taagle+url du moteur taagle
 $url = "http://91.121.9.92/web2/search.php?query="; $url = "http://91.121.9.92/web2/search.php?query=";
  
-//ce que l'on cherche à obtenir dans la réponse du moteur de recherche+ce que l'on cherche à obtenir dans la réponse du moteur de recherche
 $comps = str_split('taagle'."\t"); $comps = str_split('taagle'."\t");
  
 $start=""; $start="";
-foreach($comps as $key=>$cmp){ //pour chaque char recherché +foreach($comps as $key=>$cmp){ #pour chaque char recherché 
- for($i=0;$i<256;$i++){ // on boucle sur la table ascii 256 // 128 n'a pas trouvé toute les lettres+ for($i=0;$i<256;$i++){ on boucle sur la table ascii 256 128 n'a pas trouvé toute les lettres
  
- $char = chr($i); // on convertie l'int en caractère ascii // string chr ( int $ascii )    + $char = chr($i); on convertie l'int en caractère ascii string chr ( int $ascii )    
- $res = getQuery($url,urlencode($start.$char.'taagle')); //récupère le résultat de la page + $res = getQuery($url,urlencode($start.$char.'taagle')); récupère le résultat de la page 
- if(!isset($res[1][0])){ // si pas de résultat + if(!isset($res[1][0])){ si pas de résultat 
- $http = file_get_contents($url.urlencode($start.$char.'taagle')); // on récupère la page avec notre mot ($start) + $http = file_get_contents($url.urlencode($start.$char.'taagle')); on récupère la page avec notre mot ($start) 
- if (strpos($http,'cataclysme') !== false) { // si il y a cataclysme sur la page + if (strpos($http,'cataclysme') !== false) { si il y a cataclysme sur la page 
- echo "\n\n url $url".urlencode($start.$char.'taagle'); // on affiche l'url trouvé afin de la consulter + echo "\n\n url $url".urlencode($start.$char.'taagle'); on affiche l'url trouvé afin de la consulter 
- exit(); // fin+ exit(); fin
  }  }
  }  }
- else{ // sinon (il y a une réponse)+ else{ sinon (il y a une réponse)
  $tmp = (string)$res[1][0];  $tmp = (string)$res[1][0];
  $str = str_split($res[1][0]);  $str = str_split($res[1][0]);
- echo "."; // des petits points  + echo "."; des petits points  
- if(ord($str[$key]) == ord($cmp)){ // si le mot chercher est dans la page on concatène le caractère qui à permis de l'obtenir à $start + if(ord($str[$key]) == ord($cmp)){ si le mot chercher est dans la page on concatène le caractère qui à permis de l'obtenir à $start 
   
- echo "\n".urlencode($char)." : ".urlencode($cmp)."\n"; // on affiche + echo "\n".urlencode($char)." : ".urlencode($cmp)."\n"; on affiche 
  $start=$start."$char";  $start=$start."$char";
  break;  break;
Ligne 333: Ligne 332:
  
  
-function getQuery($url,$query){ //récupère le résultat de la requete faite au moteur taagle+function getQuery($url,$query){ #r écupère le résultat de la requete faite au moteur taagle
  $res = file_get_contents($url.$query);  $res = file_get_contents($url.$query);
  
- $patern="@<span>(.*)</span>@";//<span>query.net</span>+ $patern="@<span>(.*)</span>@";<span>$query.net</span>
  preg_match_all($patern,$res,$matches);  preg_match_all($patern,$res,$matches);
   
Ligne 343: Ligne 342:
 ?> ?>
 </code> </code>
 +
 +http://img15.hostingpics.net/pics/981774web2.png
 +
 +
  
 la solution est  la solution est 
  
 http://91.121.9.92/web2/search.php?query=7%9A2%19%02%06%3Btaagle http://91.121.9.92/web2/search.php?query=7%9A2%19%02%06%3Btaagle
 +
 +
 +http://img15.hostingpics.net/pics/317320cataclysme.png
 +http://img15.hostingpics.net/pics/533569success.png
  
  
hackingweek_2014/web/web2.1394122816.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)