用于捕获、修改和转发HTTp数据包的Burp扩展

用于捕获、修改和转发HTTp数据包的Burp扩展,http,proxy,burp,Http,Proxy,Burp,我正在尝试编写一个简单的burp扩展来捕获HTTP数据包,修改它并将其转发到服务器。我需要做一些安全测试。我从一个代码开始打印收到的数据包。附加下面的代码,这是我从各种打嗝教程得到的。我将Eclipse代理配置为localhost,然后运行此代码。代码运行良好,Burp正确打开并截获数据包,但我在IDE控制台上看不到任何内容。请帮帮我,因为我对打嗝还很陌生,无法从网上的帮助中了解太多 package burp; public class BurpExtender2 implements IBu

我正在尝试编写一个简单的burp扩展来捕获HTTP数据包,修改它并将其转发到服务器。我需要做一些安全测试。我从一个代码开始打印收到的数据包。附加下面的代码,这是我从各种打嗝教程得到的。我将Eclipse代理配置为localhost,然后运行此代码。代码运行良好,Burp正确打开并截获数据包,但我在IDE控制台上看不到任何内容。请帮帮我,因为我对打嗝还很陌生,无法从网上的帮助中了解太多

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);

 }
}

我只是想知道如何在我的代码中获取被截获的数据包,然后转发它。

我想知道为什么您要编写一个Burp扩展来捕获数据包。你不会用嗅探器吗

无论如何,多亏了你的代码,我才能够开始编写扩展。下面是我对您的方法processHttpMessage的发现

“[”+回调。getToolName(toolFlag)+“]”

这里有些东西有问题,可能在打嗝套房(1.5.16);即使使用硬编码的int,我也无法让getToolName打印任何内容,而且无法在Burp上设置调试器,所以我放弃了

System.out.println( (messageIsRequest?“HTTP请求至”:“HTTP响应自”)+ messageInfo.getHttpService())

System.out.println(“[callbacks.getToolName(toolsflag)]=”; System.out.println(callbacks.getToolName(toolsflag))


无论如何,这将打印到控制台,但您将看不到toolFlag的任何值。

我的错误:iHttpService对象应该打印服务而不引发异常。现在我不确定你的问题在哪里。