我试图将HTTP流量从80重路由到8080,以供Burp Suite使用。
使用iptable,我的命令是:
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
通过这样做,流量确实被重新路由到端口8080,并显示在Burp中。但是,GET请求一直在加载,如果我禁用了拦截,请求就会淹没Burp历史,直到它满了为止。
我已经做了一个完全刷新和重置iptables,没有任何效果。
编辑:经过更多的调查后,我怀疑同样的请求在转发后会继续返回到Burp。这可能是Burp的一个问题。帮助?
更多信息:我正在一台ubuntu 13虚拟机上进行测试,并在没有代理的android仿真器浏览器(在VM中运行)进行测试。
发布于 2014-01-21 07:17:45
如果我错了,请纠正我,但是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在以根的形式运行Burp Suite之后。
发布于 2014-01-21 07:49:48
我的解决方案是简单地声明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等不同的源时,请求不会被路由。
https://serverfault.com/questions/568656
复制相似问题