Table of Contents

= Description #=

Les commentaires injectés dans une application via l'entrée peut être utilisée pour compromettre un système. Comme les données sont analysées, un commentaire injecté / malformée peut provoquer le fait que le procesus va prendre des mesures inattendues qui se traduisent par une attaque.

= Exemples #=

L'attaquant peut mener ce genre d'attaque avec une programmation différente ou langages de script:

Base de données:

Si l'attaquant a la capacité de manipuler les requêtes qui sont envoyées à la base de données, puis il est capable d'injecter un caractère de terminaison de trop. Le lendemain, c'est que l'interprétation de la requête sera arrêté au caractère de terminaison:

SELECT body FROM items WHERE id = $ID limit 1;

Supposons que l'attaquant a envoyé via la méthode GET, les données suivantes stockées dans la variable $ID:

"1 ou 1=1; #"

A la fin du formulaire de requête finale est:

SELECT body FROM items WHERE id = 1 or 1=1; # limit 1;

Après le # tout caractère sera ignoré par la base de données, y compris “ limit 1 ”, alors que la dernière colonne« body »avec tous ses enregistrements seront reçus comme une réponse à la requête. Séquences qui peuvent être utilisés pour commenter requêtes:

## Null byte: (Octet nul) ##

Pour commenter sur certaines parties des requêtes, l'attaquant peut utiliser les séquences standards, typiques pour un langage donnée, ou de résilier les requêtes en utilisant ses propres méthodes étant limités que par leur imagination. Un exemple interressant est une méthode utilisant l'octet nul de commenter tout ce qui suit la requête en cours dans les bases de données MS Access. Plus d'informations à ce sujet peuvent être trouvées dans “l'incorporation de code Null“ .

Shell:

Shell (bash) a également le caractère # , qui termine interprétation. Par exemple:

find.php
<?
$ =sth $_GET['what];
system("/usr/bin/find -name '$sth' -type f");
?>

Utilisation /find.php?what='%20%23  l'attaquant de contourner la limitation “ -type f ” et cette commande: /usr/bin/find-name '' -type f deviendra: /usr/bin/find-name '' #-type f Ainsi, la forme définitive de la commande est la suivante: /usr/bin/find-name '*' # HTML (injection): # S'il n'y a aucune restriction quant à qui est capable d'insérer des commentaires, puis en utilisant la balise de commentaire départ: <!--il est possible de commenter sur le reste du contenu affiché sur le site Web. invisible.php <? Php print “bonjour:”; print $ _GET['user']; print “Bienvenue ami!”; > Après: GET /invisible.php?user=<!--Il en résultera: bonjour!: #= Références #= http://dev.mysql.com/doc/refman/5.0/en/comments.html http://www.webapptest.org/ms-access-sql-injection-cheat-sheet-EN.html