iptables 导致 GET 请求无限循环

iptables 导致 GET 请求无限循环

我正在尝试将 HTTP 流量从 80 重新路由到 8080 以供 Burp Suite 使用。

使用 iptables,我的命令是:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080

这样一来,流量确实被重新路由到端口 8080 并显示在 Burp 中。但是,GET 请求仍在加载,如果我禁用拦截,请求将充斥 Burp 历史记录,直到它已满。

我已经对 iptables 进行了完全刷新和重置,但没有任何效果。

编辑:经过进一步调查,我怀疑相同的请求在转发后不断返回到 Burp Suite。这可能是 Burp 的问题。帮忙?

更多信息:我在 ubuntu 13 虚拟机上执行此操作,并使用没有代理的 android 模拟器(在 VM 中运行)的浏览器进行测试。

答案1

如果我错了请纠正我,但 Burp Suite 是一个代理,因此对于每个连接,都会有另一个连接返回。您的第一个连接正在正确地重新路由到 Burp,然后,Burp 自己的出站连接也会被重新路由。您可以通过修改 iptables 规则来排除 Burp,如下所示:

   iptables -t nat -A OUTPUT -p tcp --dport 80 ! --uid-owner <UID OF BURP PROCESS> -j DNAT --to 127.0.0.1:8080

当然,以不同于浏览器的用户身份运行 Burp 非常重要。如果我有更多详细信息或示例场景来描述您要完成的任务,我可能会给您更好的答案?

祝你好运。

编辑:有效的正确命令是

iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner 0 -j DNAT --to 127.0.0.1:8080

以 root 身份运行 Burp Suite 后。

答案2

我的解决方案是简单地说明 HTTP 请求的来源,并将所有路由限制为来自该 IP 地址的路由。

sudo iptables -t nat -A OUTPUT -p tcp -s 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8080

请求通过 burp 后,将不会再次被路由。

然而,这只适用于浏览器(我使用的是 Firefox)。

当我尝试使用 Android 模拟器执行此操作并将 iptable 规则更改为不同的源(如 10.0.2.1(模拟器的网关地址)、10.0.2.2、10.0.2.15)时,请求不会被路由。

相关内容