Yanıtlar:
-H/--header
Argümanı kullanarak şunları yapabilirsiniz :
IP adresinizi taklit edebilirsiniz:
curl --header "X-Forwarded-For: 192.168.0.2" http://example.com
Örnek:
müşteri
$ curl http://webhost.co.uk
web sunucusu
$ tailf access.log | grep 192.168.0.54
192.168.0.54 - - [10/Nov/2014:15:56:09 +0000] "GET / HTTP/1.1" 200 14328 "-"
"curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3
libidn/1.18 libssh2/1.4.2"
ip adresine sahip istemci değişti
$ curl --header "X-Forwarded-For: 192.168.0.99" http://webhost.co.uk
web sunucusu
$ tailf access.log | grep 192.168.0.99
192.168.0.99 - - [10/Nov/2014:15:56:43 +0000] "GET / HTTP/1.1" 200
14328 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0
zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
adam kıvırmak
-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:".
Referanslar:
Kabul edilen cevabın IP'nizi taklit etmenize gerçekten yardımcı olmayacağını düşünüyorum. Hedef makineye yakın yönlendiricilere erişiminiz yoksa kaynak IP'nizi gerçekten taklit edemezsiniz.
TCP 3 yollu bir el sıkışma mekanizması üzerinde çalışır. Hedef makineden gelen el sıkışma yanıtı kendinizin değil, sahte IP'nize gideceğinden (daha önce de belirtildiği gibi, yakınlardaki yönlendiricilerini denetlemediğiniz ve yanıtı kendinize yönlendirmediğiniz sürece) bu el sıkışmasını tamamlayamazsınız.
Not: Bir UDP mesajı gönderebilirsiniz, ancak denemedim.
curl
bazı HTTP kaynaklarına erişmeye çalıştıklarını varsayıyorum. UDP üzerinden HTTP curl
, AFAIK'ı destekleyen veya bu noktada deneysel olmayan bir şey değildir .
Yerel ağ arayüzünüzde birden fazla IP adresi varsa, kaynak IP adresini değiştirmek mümkündür.
2 IP adresine sahip bir sunucunuz olduğunu varsayalım 1.1.1.10
ve 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
Mevcut genel IP adresinizi müthiş ifconfig.co web hizmetiyle doğrulayabilirsiniz :
$ curl -4 ifconfig.co
1.1.1.10
Diğer IP adresini ( ) kullanarak ifconfig.co web hizmetine erişmek için 2.2.2.20
, hedef sunucunun IP adresini temel alarak bir rota oluşturabilirsiniz. DNS A
kayıtlarından hedef IP adreslerini bulmak için dig'i kullanın :
$ dig ifconfig.co
...
ifconfig.co. 39 IN A 104.28.18.94
ifconfig.co. 39 IN A 104.28.19.94
...
Şimdi bu IP adresleri için özel rotalar ekleyin:
$ 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
Kıvrımı tekrar çalıştırdığınızda, diğer kaynak IP adresini kullandığınızı görürsünüz:
$ curl -4 ifconfig.co
2.2.2.20
Ayrıca, yönlendirme bilgileriniz güncellenir:
$ 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
Not: belirttiği gibi kaynak IP adresi, aksi TCP 3 yollu el sıkışma başarısız olur, sunucuya çözülebilir eğer bu sadece çalışır burada .