The Payload worked in HTTP/1.0 and not in HTTP/1.1 . 
 TL; DR: ha funzionato in HTTP / 1.0, ha fallito con una richiesta HTTP / 1.1 non valida ma è riuscita con una richiesta HTTP / 1.1 valida. 
 Dai un'occhiata alla richiesta che è stata inviata: 
GET / HTTP/1.x
X-Forwarded-For: hacker' OR sleep(5) AND '1'='1 --+
Connection: close
 Mentre HTTP / 1.0 e HTTP / 1.1 sembrano uguali, ci sono alcune importanti differenze. Uno è che HTTP / 1.1 richiede che il client invii un'intestazione   Host    nella richiesta, ad esempio qualcosa come   Host: www.example.com   . Anche se questa intestazione era possibile e ampiamente utilizzata con HTTP / 1.0, non era obbligatoria in HTTP / 1.0 ma è obbligatoria in HTTP / 1.1. Ciò significa che la richiesta inviata non è effettivamente valida con HTTP / 1.1 che spiega la risposta che si ottiene dal server: 
  For HTTP/1.1 : I Immediately get 400 Bad Request
 Questa risposta immediata dal server indica che la richiesta è stata rifiutata e non inoltrata all'applicazione Web vulnerabile. La richiesta HTTP / 1.0 ben strutturata invece non è stata rifiutata e ha portato allo sfruttamento di successo: 
  For HTTP/1.0 : I get 200 OK after 5 seconds 
 Dopo che la richiesta HTTP / 1.1 è stata corretta, l'exploit ha funzionato anche lì: 
  Once I added Host Header. SQLi worked with 1.1 as well.