Senden einer CURL-Anfrage mit benutzerdefinierter IP
19
Sollte es nicht möglich sein? Nehmen wir an, ich brauche keine Antwort, ich möchte nur eine Anfrage senden. Sollten wir nicht in der Lage sein, TCP / IP-Header zu ändern, weil unser Computer es sendet? Ich vermisse wahrscheinlich etwas, nur sehr neugierig, und erfahre davon in der Uni.
-H/--header <header>
(HTTP) Extra header to use when getting a web page. You may
specify any number of extra headers. Note that if you should add
a custom header that has the same name as one of the internal
ones curl would use, your externally set header will be used
instead of the internal one. This allows you to make even
trickier stuff than curl would normally do. You should not
replace internally set headers without knowing perfectly well
what you’re doing. Remove an internal header by giving a
replacement without content on the right side of the colon,
as in: -H "Host:".
Ich mag ändern Quell - IP denke ich, und es nicht zulassen , dass so weit wie ich kann ... sagen
TMM
Zu welchem Protokoll? Ich habe ein reales Beispiel für die Änderung der Quell-IP-Adresse hinzugefügt, die sich in den Apache-Zugriffsprotokollen widerspiegelt.
Geedoubleya
2
http http http http
tmm
Hierdurch wird die IP-Adresse nicht geändert, die der Computer an die rohe TCP-Anfrage anhängt.
de Raad
3
Ich denke, die akzeptierte Antwort wird Ihnen nicht wirklich helfen, Ihre IP vollständig zu fälschen. Sie können Ihre Quell-IP nicht wirklich fälschen, es sei denn, Sie haben Zugriff auf Router in der Nähe des Zielcomputers.
TCP arbeitet mit einem 3-Wege-Handshake-Mechanismus. Sie können diesen Handshake nicht abschließen, da die Handshake-Antwort vom Zielcomputer an Ihre gefälschte IP-Adresse und nicht an Ihre eigene IP-Adresse gesendet wird (es sei denn, Sie steuern, wie bereits erwähnt, die in der Nähe befindlichen Router und leiten die Antwort an sich selbst weiter).
PS: Möglicherweise können Sie eine UDP-Nachricht senden, aber ich habe es nicht versucht.
Da in der ursprünglichen Frage gefragt wurde, wie dies geschehen soll curl, gehe ich davon aus, dass sie versuchen, auf eine HTTP-Ressource zuzugreifen. HTTP über UDP curlunterstützt weder AFAIK noch ist es zu diesem Zeitpunkt mehr als experimentell.
IvanGoneKrazy
1
Es ist möglich, die Quell-IP-Adresse zu ändern, wenn Ihre lokale Netzwerkschnittstelle mehrere IP-Adressen hat.
Angenommen, Sie haben einen Server mit 2 IP-Adressen 1.1.1.10und 2.2.2.20:
$ ip route
default via 1.1.1.193 dev eth0
1.1.1.192/27 via 1.1.1.193 dev eth0
1.1.1.192/27 dev eth0 proto kernel scope link src 1.1.1.10
2.2.2.20 via 2.2.2.20 dev eth0 scope link
Sie können Ihre aktuelle öffentliche IP-Adresse mit dem fantastischen Webservice ifconfig.co überprüfen :
$ curl -4 ifconfig.co
1.1.1.10
Um mit der anderen IP-Adresse ( ) auf den Webdienst ifconfig.co zuzugreifen 2.2.2.20, können Sie eine Route erstellen, die auf der IP-Adresse des Zielservers basiert. Verwenden Sie dig, um die Ziel-IP-Adressen aus den DNS- AEinträgen zu ermitteln:
$ dig ifconfig.co
...
ifconfig.co. 39 IN A 104.28.18.94
ifconfig.co. 39 IN A 104.28.19.94
...
Fügen Sie nun benutzerdefinierte Routen für diese IP-Adressen hinzu:
$ ip route add 104.28.18.94/32 via 1.1.1.193 dev eth0 src 2.2.2.20
$ ip route add 104.28.19.94/32 via 1.1.1.193 dev eth0 src 2.2.2.20
Wenn Sie curl erneut ausführen, sehen Sie, dass Sie die andere Quell-IP-Adresse verwenden:
$ curl -4 ifconfig.co
2.2.2.20
Außerdem werden Ihre Routing-Informationen aktualisiert:
$ ip route
default via 1.1.1.193 dev eth0
1.1.1.192/27 via 1.1.1.193 dev eth0
1.1.1.192/27 dev eth0 proto kernel scope link src 1.1.1.10
2.2.2.20 via 2.2.2.20 dev eth0 scope link
104.28.18.94 via 1.1.1.193 dev eth0 src 2.2.2.20
104.28.19.94 via 1.1.1.193 dev eth0 src 2.2.2.20
Hinweis: Dies funktioniert nur, wenn die Quell-IP-Adresse in Ihren Server aufgelöst werden kann. Andernfalls schlägt der TCP-3-Wege-Handshake fehl, wie hier erläutert .
Ich denke, die akzeptierte Antwort wird Ihnen nicht wirklich helfen, Ihre IP vollständig zu fälschen. Sie können Ihre Quell-IP nicht wirklich fälschen, es sei denn, Sie haben Zugriff auf Router in der Nähe des Zielcomputers.
TCP arbeitet mit einem 3-Wege-Handshake-Mechanismus. Sie können diesen Handshake nicht abschließen, da die Handshake-Antwort vom Zielcomputer an Ihre gefälschte IP-Adresse und nicht an Ihre eigene IP-Adresse gesendet wird (es sei denn, Sie steuern, wie bereits erwähnt, die in der Nähe befindlichen Router und leiten die Antwort an sich selbst weiter).
PS: Möglicherweise können Sie eine UDP-Nachricht senden, aber ich habe es nicht versucht.
quelle
curl
, gehe ich davon aus, dass sie versuchen, auf eine HTTP-Ressource zuzugreifen. HTTP über UDPcurl
unterstützt weder AFAIK noch ist es zu diesem Zeitpunkt mehr als experimentell.Es ist möglich, die Quell-IP-Adresse zu ändern, wenn Ihre lokale Netzwerkschnittstelle mehrere IP-Adressen hat.
Angenommen, Sie haben einen Server mit 2 IP-Adressen
1.1.1.10
und2.2.2.20
:Sie können Ihre aktuelle öffentliche IP-Adresse mit dem fantastischen Webservice ifconfig.co überprüfen :
Um mit der anderen IP-Adresse ( ) auf den Webdienst ifconfig.co zuzugreifen
2.2.2.20
, können Sie eine Route erstellen, die auf der IP-Adresse des Zielservers basiert. Verwenden Sie dig, um die Ziel-IP-Adressen aus den DNS-A
Einträgen zu ermitteln:Fügen Sie nun benutzerdefinierte Routen für diese IP-Adressen hinzu:
Wenn Sie curl erneut ausführen, sehen Sie, dass Sie die andere Quell-IP-Adresse verwenden:
Außerdem werden Ihre Routing-Informationen aktualisiert:
Hinweis: Dies funktioniert nur, wenn die Quell-IP-Adresse in Ihren Server aufgelöst werden kann. Andernfalls schlägt der TCP-3-Wege-Handshake fehl, wie hier erläutert .
quelle