伪造HTTP请求标头

时间:2017-11-30 16:25:44

标签: networking webserver

我有一个普通的网络问题,但它与安全方面有关。 这是我的情况:我有一个被恶意软件感染的主机。恶意软件会创建一个http数据包,以便与其命令和控制服务器进行通信。在构造数据包时,IP层包含命令和控制服务器的正确IP地址。 tcp层包含正确的端口号80。 在发送数据包之前,恶意软件会修改http标头,将主机标头替换为“google.com”而不是服务器地址。然后将数据包附带的被盗数据发送出去。 我的理解是,数据包将被传送到正确的服务器,因为路由将基于IP发生。 但是,我可以在此IP上托管一个网络服务器,该网络服务器将接收带有标题主机google.com的所有数据包并正确解析它吗? 基于我在互联网上的阅读,它是可能的,但如果这很容易,那么为什么恶意软件作者不采用这种技术来欺骗http标头并绕过传统的域名白名单引擎。

2 个答案:

答案 0 :(得分:1)

伪造的主机标题只是为了欺骗一些深度检查防火墙(“它适用于谷歌?你可以通过......”)。该IP上的服务器不关心主机头(默认vhost)或显式配置为接受它。

通过使用假标头或仅作为标题后面的明文数据来传递战利品是另一种欺骗数据丢失的技巧。

这些方法可能误导浅层应用层检查,但不会通过合适的防火墙。

答案 1 :(得分:0)

当您提出让Apache2服务器说出来的请求时,Apache所做的事情与您的" Host"相匹配。服务器配置中的任何VirtualHost标头。只有在无法找到/无效的情况下,Apache才会将请求路由到默认的虚拟主机(如果已定义)。基本上没有什么能阻止你改变这些标题。

您可以通过编辑hosts文件并将google.com指向任何其他IP来测试它 - 您将能够在服务器上处理google.com域,但只有您将以这种方式使用它 - 没有其他人。

您在HTTP标头内发送的任何内容都不应该被信任 - 它只是您的服务器如何实际处理流量的指南。