Blind SQL Injection e la dipendenza della versione HTTP?

5

I Recentemente mi sono imbattuto in una macchina virtuale con Iniezione SQL cieco nell'intestazione X-Forwarded-For.

Ho usato sleep () per rilevare la vulnerabilità.
Il payload funzionava in HTTP / 1.0 e non in HTTP / 1.1.

Carico utile:

GET / HTTP/1.x
X-Forwarded-For: hacker' OR sleep(5) AND '1'='1 --+
Connection: close

Risultati:

  • Per HTTP / 1.1: ottengo immediatamente 400 richiesta non valida
  • Per HTTP / 1.0: ottengo 200 OK dopo 5 secondi
    Ho usato Burp Repeater per creare il pacchetto.

Link VM: link

Qualcuno potrebbe aiutarmi a capire il problema qui?
Grazie.

    
posta Wisam Ahmed 02.06.2018 - 19:39
fonte

1 risposta

4

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.

    
risposta data 02.06.2018 - 21:25
fonte

Leggi altre domande sui tag