web-dev-qa-db-fra.com

SQLMAP: injection de test dans l'authentification de base?

J'ai essayé de faire tester SQLMap Test the nom d'utilisateur Paramètre dans une fausse page de connexion qui utilise l'authentification de base. Cependant, je ne peux pas le faire tester authentification en-tête via le truc d'astérisque:

sqlmap --auth-type "BASIC" --auth-cred="*:pass" --level 5 --risk 3 --method POST -u http://fake_endpoint.local/ --proxy http://127.0.0.1:8080

Je reçois à la proxy une seule tentative de connexion avec littéralement *:pass (b64: KjpwYXNz)

POST http://fake_endpoint.local/ HTTP/1.1
Content-Length: 0
Authorization: Basic KjpwYXNz
Cache-Control: no-cache
User-Agent: sqlmap/1.4.3#stable (http://sqlmap.org)
Referer: http://fake_endpoint.local/
Host: fake_endpoint.local
Accept: */*
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Connection: close

Des idées si cela est réalisable via SQLMAP?

1
chefarov

Sans regarder le code et simplement faire des hypothèses en fonction de vos résultats, je pense que les fonctionnalités d'autorisation de SQLMAP sont juste là pour vous permettre d'effectuer des tests tout en authentifiant. Ils ne sont probablement pas destinés à ce type d'utilisation.

Cependant, Authorization est juste un autre en-tête HTTP, et SQLMAP prend en charge les en-têtes HTTP arbitraires.

Donc, vous pourriez faire:

--headers="Authorization: <base64_encoded_credentials>"

Malheureusement, cela ne résout pas le problème de codage de base64. Je voudrais probablement résoudre celui-ci de ces manières:

  1. Modifier SQLMAP à BASE64 Encodez le champ d'en-tête personnalisé avant de faire la demande ou de le modifier afin que votre méthode d'origine puisse être utilisée comme point d'injection. Ces derniers méritent une demande de traction au projet, car d'autres peuvent utiliser cette fonctionnalité.
  2. Construisez un proxy de middleware rapide en utilisant quelque chose comme - Flacon . Vous auriez pointé SQLMAP sur le serveur HTTP local, qui reçoit la demande, modifie les en-têtes comme vous le souhaitez et le transmet à la destination d'origine. J'ai utilisé cette approche avec succès avant d'utiliser SQLMAP contre des cibles non http.
0
multithr3at3d