Mise en pratique
1. Fuzzing 1 : HTTP
Énoncé
Prérequis : Sulley, protocole HTTP.
But : créer un fuzzing de site web.
Énoncé :
Nous voudrions créer un fuzzer avec plusieurs blocks.
Un block, par exemple, permettra de fuzzer toutes les chaînes de caractères de l’argument /index.html HTTP/1.1 pour toutes les commandes : GET, HEAD, POST, OPTIONS, TRACE, PUT, DELETE et PROPFIND.
Vous implémenterez plusieurs blocks selon votre imagination, seule celle-ci et les limites du protocole peuvent vous bloquer.
Exemple de corrigé
from sulley import *
################################################################
s_initialize("HTTP VERBS")
s_group("verbs", values=["GET", "HEAD", "POST", "OPTIONS",
"TRACE", "PUT", "DELETE", "PROPFIND"])
if s_block_start("body", group="verbs"):
s_delim(" ")
s_delim("/")
s_string("index.html")
s_delim(" ")
s_string("HTTP")
s_delim("/")
s_string("1")
s_delim(".")
s_string("1")
...