web-dev-qa-db-fra.com

Est-il possible de modifier l'en-tête http de votre agent utilisateur pour une utilisation malveillante?

Le robot d'exploration de Google utilise l'agent utilisateur "Googlebot", et je me demande si cette connaissance peut être utilisée de manière malveillante.

Disons que dans un site Web aléatoire, l'agent utilisateur Googlebot est autorisé à accéder à un panneau d'administration, cela pourrait-il être considéré comme une vulnérabilité, ou est-ce simplement impossible?

25
Xavier

Oui. Vous devez rechercher ce qui se passe exactement dans une requête HTTP.

L'agent utilisateur est facilement modifié car il est défini par le client. Il existe de nombreux outils qui vous permettent de modifier votre agent utilisateur pour votre navigateur. Si vous utilisez curl, vous pouvez également créer votre propre requête HTTP et définir l'agent utilisateur sur ce que vous voulez.

Si une application Web dépend d'un agent utilisateur à des fins de sécurité, cela est 100% vulnérable.

34
d1str0

Oui, un agent utilisateur modifié peut être utilisé à des fins malveillantes. Cependant, il est peu probable que votre scénario de googlebot UA soit utilisé pour un accès privilégié.

Comment l'UA est-elle plus susceptible d'être utilisée? Si votre application analyse l'agent utilisateur pour prendre des mesures et que vous ne nettoyez pas correctement cette entrée, Cross Site Scripting will être un résultat très probable.

Dans la même veine, si l'agent utilisateur est analysé par une sorte d'exécution de code à distance du moteur de script côté serveur pourrait également être possible. Shellshock en était un excellent exemple.

20
KDEx

Un exemple récent peut être trouvé dans un exploit Joomla . Joomla a stocké l'agent utilisateur dans la session, ce qui a permis à ne vulnérabilité d'utilisation après libération in PHP d'être exploité.

13
Sjoerd

Oui, il est possible qu'il puisse être utilisé à des fins malveillantes selon la façon dont l'application est écrite.

Les agents utilisateurs ne doivent jamais être utilisés pour aucune forme d'authentification et posent un risque énorme du point de vue de la sécurité.

1
moarsauce

Un autre exemple dans lequel les chaînes User-Agent sont également utilisées est dans SIP. Alors que vos listes noires/listes blanches sont souvent définies en fonction des chaînes de l'agent utilisateur.

Par exemple, l'outil d'analyse de sécurité sipvicious utilise l'agent utilisateur (friendly-scanner). Cet User-Agent peut être mis sur liste noire afin que les demandes contenant "friendly-scanner" soient rejetées, ou mieux encore ne reçoivent aucune réponse.

C'est également une méthode pour mettre sur liste blanche, un exemple serait dans un scénario IP-PBX, vous pouvez définir l'agent utilisateur des SIP téléphones/points de terminaison que vous utilisez et autoriser uniquement leurs demandes d'enregistrement à en traitement.

Dans ce cas, une personne usurpant l'agent utilisateur pourrait utiliser des outils d'analyse/d'attaque pour contourner la première couche de sécurité afin, espérons-le, de récupérer plus d'informations sur le ou les systèmes résidant dans le réseau SIP ou d'exécuter un exploit.

1
Stephen Gelardi

En plus des réponses ci-dessus, un attaquant peut également lancer des attaques SQLi contre un site Web cible en fournissant une entrée malveillante via la valeur de l'agent utilisateur. Par exemple:

User-Agent: NoAgent "; utilisateurs DROP TABLE

Plus d'informations à ce sujet sur: http://sechow.com/bricks/docs/content-page-4.html

https://security.stackexchange.com/a/1334

Également, exemple de la façon dont l'agent utilisateur peut être modifié à l'aide de Curl:

curl -A "Googlebot/2.1" http://example.com

0
racec0ndition

Alors que d'autres réponses détaillent si elle est modifiable (vous pouvez), je voudrais parler de la partie malveillante.

Vous ne devez jamais compter uniquement sur les agents utilisateurs.

Certains routeurs D-link auraient une porte dérobée pour leur panneau d'administration, ce qui permettait à tous ceux qui configuraient leurs agents utilisateurs de xmlset_roodkcableoj28840ybtide pour vous connecter sans mot de passe. Vous pouvez lire un article de blog à ce sujet ici .

0
Ave