我正在尝试编写一个简单的burp扩展来捕获HTTP数据包,修改它并将其转发到服务器。我需要做一些安全测试。我开始使用代码来打印收到的数据包。附上下面的代码,我从各种Burp教程中获得。我将Eclipse的代理配置为localhost,然后运行此代码。代码运行正常,Burp正确打开并拦截数据包但我无法在IDE控制台上看到任何内容。请帮助我,因为我对Burp很新,并且无法从在线帮助中理解太多。
package burp;
public class BurpExtender2 implements IBurpExtender, IHttpListener, IProxyListener
{
private IBurpExtenderCallbacks callbacks;
public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks)
{
helpers = callbacks.getHelpers();
callbacks.registerHttpListener(this);
}
public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequestResponse messageInfo)
{
System.out.println(
(messageIsRequest ? "HTTP request to " : "HTTP response from ") +
messageInfo.getHttpService() +
" [" + callbacks.getToolName(toolFlag) + "]");
}
public void processProxyMessage(boolean messageIsRequest, IInterceptedProxyMessage message)
{
System.out.println(message);
}
}
我只想知道如何在我的代码中获取截获的数据包然后转发它。
答案 0 :(得分:0)
我想知道你为什么要编写一个Burp扩展来捕获数据包。你不会用嗅探器吗?
无论如何,多亏了你的代码,我才能开始编写扩展。这是我在您的方法processHttpMessage
中找到的内容“[”+ callbacks.getToolName(toolFlag)+“]”
这里有些东西,可能在Burp Suite(1.5.16);即使使用硬编码的int,我也无法让getToolName打印任何东西,并且不可能在Burp上放置调试器,所以我放弃了。
的System.out.println( (messageIsRequest?“HTTP请求”:“HTTP响应来自”)+ messageInfo.getHttpService());
System.out.println(“[callbacks.getToolName(toolFlag)] =”); 的System.out.println(callbacks.getToolName(toolFlag));
无论如何,这将打印到控制台,但你不会看到toolFlag的任何值。