web-dev-qa-db-fra.com

Comment puis-je usurper l'adresse IP de l'expéditeur à l'aide de curl?

J'ai besoin de faire une demande avec une adresse IP usurpée à des fins de test. Quelle est la façon la plus simple de procéder?

40
jonderry

Pour mes propres besoins, la modification de l'en-tête HTTP était suffisante, via ce qui suit:

curl --header "X-Forwarded-For: 1.2.3.4" "http://www.foobar.com"
64
jonderry

Tu ne peux pas.

En général, l'usurpation d'adresses IP pour TCP est remarquablement difficile. À moins que vous ne contrôliez un routeur assez près de votre cible ou près de l'adresse IP que vous usurpez, considérez cela comme impossible.

Les paquets de réponse ont besoin d'un chemin de retour vers vous afin de terminer même la prise de contact à trois . Le moyen le plus fiable de le faire est d'avoir le contrôle sur un routeur dans la voie la plus courante entre votre cible et votre adresse IP usurpée: cela vous permettrait de capturer des paquets entre la cible et l'adresse usurpée et de vous les transmettre.

Vous pouvez également essayer d'injecter fausses routes BGP publicités, mais cela serait sans aucun doute remarqué et vous coûtera cher lorsque vos pairs vous abandonneront complètement.

37
sarnold

Puis-je faire de fausses libcurl ou cacher ma vraie adresse IP?

Non. Libcurl fonctionne à un niveau supérieur. De plus, truquer une adresse IP impliquerait d'envoyer un paquet IP avec une adresse source inventée, et alors vous avez normalement un problème avec la réception du paquet renvoyé car ils ne seraient alors pas acheminés vers vous!

Si vous utilisez un proxy pour accéder aux sites distants, les sites ne verront pas votre adresse IP locale mais plutôt l'adresse du proxy.

Notez également que sur de nombreux réseaux, des NAT ou d'autres techniques de munging IP sont utilisés qui vous permettent de voir et d'utiliser une adresse IP différente localement de celle dont le serveur distant vous verra provenir.

7
armandino