如何使用curl欺骗发件人IP地址?

jon*_*rry 41 unix curl

我需要使用欺骗性IP地址发出请求以进行测试.最简单的方法是什么?

jon*_*rry 65

出于我自己的目的,通过以下方式更改HTTP标头就足够了:

curl --header "X-Forwarded-For: 1.2.3.4" "http://www.foobar.com"
Run Code Online (Sandbox Code Playgroud)

  • 这很聪明,但不是问题所暗示的网络层.看起来这样会诱使收件人认为有代理但不应该影响框架的源IP.这个答案以不同的方式阐述了同样的事情:http://stackoverflow.com/questions/16910280/curl-with-spoof-ip-address.在问题要求欺骗时,你必须构建数据包,这就是为什么大多数工具需要原始套接字; 如果你更具体地说你正在尝试做什么/欺骗,它将有助于这个问题(及其要点)与另一个问题的区别. (3认同)

sar*_*old 38

你不能.

通常,欺骗TCP的IP地址非常困难.除非您控制的路由器非常靠近您的目标或靠近IP,否则您无法进行欺骗.

回复数据包需要一条返回给您的路径才能完成三次握手.最可靠的方法是在目标和欺骗性IP地址之间的最常见路径中控制路由器:这将允许您在目标和欺骗地址之间捕获数据包并将其转发给您.

你也可以尝试注入伪造的BGP路由广告,但是这样做无疑会引起注意,并且当你的同伴完全放弃你时会花费你的代价.

  • 这是他问的问题的正确答案,但不是他要问的问题的正确答案.:D @sarnold (19认同)

arm*_*ino 7

我可以使libcurl伪造或隐藏我的真实IP地址吗?

不,libcurl在更高层次上运作.此外,伪造IP地址意味着发送带有伪造源地址的IP数据包,然后您通常会收到发送回的数据包的问题,​​因为它们不会被路由到您!

如果您使用代理访问远程站点,则站点将不会看到您的本地IP地址,而是查看代理的地址.

另请注意,在许多网络上使用NAT或其他IP-munging技术,使您可以在本地查看和使用与远程服务器将来自的IP地址不同的IP地址.