Je veux tester Fuzz-Testez un analyseur XML et je me demande s'il y a des fuzzers appropriés.
Il serait agréable de générer des ordures aléatoires, mais non seulement des avantages de la spécification de schéma existante comme XSD ou DTD. P>
3 Réponses :
Voici quelques fluzeurs XML que j'ai chiés lors d'une recherche plusieurs mois en arrière: p>
Cela pourrait être ce que vous considérez "générateur de déchets", mais je vous demanderai de vérifier de toute façon. P>
Radamsa de Université de l'Université d'Oulu est le flux de flûtisser gratuit général. Vous pouvez vous faire fuzzer avec cela vraiment facilement. Donnez-lui un exemple de fichiers et Radamsa génère des fichiers floues pour vous. P>
Les différents FUZZERS inclus peuvent faire de simples bits Flips à un apprentissage complexe de la structure et de le floues. P>
Le code peut être trouvé à partir de code Google . P>
Pas vraiment XML lié, mais cela semble très agréable pour le flou général.
American Fuzzy Lop pourrait être un bon choix ici. Il utilise un algorithme génétique qui apprendra à induire de nouveaux chemins de code dans votre programme et à proposer des cas de test qui optimisent la couverture. P>
AFL dispose de stratégies de mutation qui conviennent parfaitement aux formats binaires, mais pas pour XML. Cependant, vous pouvez écrire un mutateur personnalisé pour XML comme décrit dans Recensement-labs.com /media/choronzon-zeronights-2015.pdf et branchez-le dans Libfuzzer, Honggfuzz ou Mozilla's Fork of AFL qui prend également en charge les mutateurs personnalisés.
@SHNATSEL Y a-t-il quelque chose de spécifique à propos de XML qui ne fonctionne pas bien avec AFL? IIRC SQLITE a été assez floue très bien avec AFL avant même que l'introduction de la fonctionnalité des jetons de langue. Avec la fonctionnalité, il devrait être encore plus facile de fuzz l'analyseur.
C'est un format textuel verbeux qui dépend de nombreux octets très spécifiques étant mis dans des endroits très spécifiques (par exemple une balise valide complète, voire une paire d'étiquettes d'ouverture et de fermeture). Les stratégies de mutation de l'AFL conviennent bien aux données binaires, mais ne gèrent pas de tels formats: des trucs comme des "bits à bascule" ne font pas grand chose, mais les attributs en mouvement entre les étiquettes auraient découvert de nouveaux États. Choronzon a prouvé cela expérimentalement. Toutefois, si vous souhaitez utiliser AFL vers Fuzz XML, vous pouvez écrire votre propre mutateur XML-Cawn-Aware, comme cela a été fait pour Choronzon.
Vote à fermer en tant que hors-thème: "Questions nous demandant de recommander ou de trouver un livre, un outil, une bibliothèque de logiciels, un didacticiel ou une autre ressource hors site sont hors tension pour débordement de pile car ils ont tendance à attirer des réponses et des spams d'opinion. Décrivez le problème et ce qui a été fait jusqu'à présent pour le résoudre. "