iptables导致无限循环的GET请求

我试图重新路由HTTPstream量从80到8080被Burp Suite使用。

使用iptables,我的命令是:

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

通过这样做,stream量确实被重新路由到端口8080并显示在Burp中。 但是,GET请求不断加载,如果我禁用拦截,请求洪泛布尔普历史,直到它已满。

我已经完全刷新和重置iptables没有任何效果。

编辑:经过调查更多,我怀疑转发后,相同的请求继续回到Burp套房。 这可能是Burp的一个问题。 帮帮我?

更多信息:我正在做一个Ubuntu的13虚拟机,并testing这与一个Android模拟器(在虚拟机中运行)的浏览器没有代理。

纠正我,如果我错了,但Burp套件是一个代理,所以在每一个连接将有另一个连接退出。 您的第一个连接正在被重新路由到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之后。

我的解决scheme是简单地声明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

请求通过打嗝后,它不会再被路由。

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

当我用Android模拟器尝试了这一点,并将iptable规则更改为10.0.2.1(模拟器的网关地址)10.0.2.2,10.0.2.15等不同源时,请求不会被路由。