From 9f01aa42004b2af164b0854146973405858d3b05 Mon Sep 17 00:00:00 2001 From: soffensive Date: Thu, 18 Nov 2021 11:47:37 +0100 Subject: [PATCH] Added Error Output, added ActionListener --- ContentTypeConverter/pom.xml | 17 +++++ .../src/main/java/burp/BurpExtender.java | 4 +- .../src/main/java/burp/Menu.java | 67 ++++++------------- .../src/main/java/burp/Utilities.java | 17 ++--- 4 files changed, 48 insertions(+), 57 deletions(-) diff --git a/ContentTypeConverter/pom.xml b/ContentTypeConverter/pom.xml index e1d183c..0c441ba 100644 --- a/ContentTypeConverter/pom.xml +++ b/ContentTypeConverter/pom.xml @@ -8,5 +8,22 @@ contenttypeconverter 1 + + 1.8 + 1.8 + + + + com.google.code.gson + gson + 2.8.9 + + + org.json + json + 20210307 + + + \ No newline at end of file diff --git a/ContentTypeConverter/src/main/java/burp/BurpExtender.java b/ContentTypeConverter/src/main/java/burp/BurpExtender.java index c0c197e..9e73707 100644 --- a/ContentTypeConverter/src/main/java/burp/BurpExtender.java +++ b/ContentTypeConverter/src/main/java/burp/BurpExtender.java @@ -3,14 +3,14 @@ public class BurpExtender implements IBurpExtender { + @Override public void registerExtenderCallbacks(IBurpExtenderCallbacks callbacks) { IExtensionHelpers helpers = callbacks.getHelpers(); - callbacks.setExtensionName("Content-Type Converter"); - callbacks.registerContextMenuFactory(new Menu(helpers)); + callbacks.registerContextMenuFactory(new Menu(helpers,callbacks)); } } diff --git a/ContentTypeConverter/src/main/java/burp/Menu.java b/ContentTypeConverter/src/main/java/burp/Menu.java index 4e9b79d..c55993e 100644 --- a/ContentTypeConverter/src/main/java/burp/Menu.java +++ b/ContentTypeConverter/src/main/java/burp/Menu.java @@ -1,6 +1,8 @@ package burp; import javax.swing.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; @@ -8,9 +10,11 @@ public class Menu implements IContextMenuFactory { private final IExtensionHelpers m_helpers; + private final IBurpExtenderCallbacks m_callbacks; - public Menu(IExtensionHelpers helpers) { + public Menu(IExtensionHelpers helpers,IBurpExtenderCallbacks callbacks) { m_helpers = helpers; + m_callbacks = callbacks; } public List createMenuItems(final IContextMenuInvocation invocation) { @@ -22,75 +26,44 @@ public List createMenuItems(final IContextMenuInvocation invocation) JMenuItem sendXMLToRepeater = new JMenuItem("Convert to XML"); JMenuItem sendJSONToRepeater = new JMenuItem("Convert to JSON"); - sendXMLToRepeater.addMouseListener(new MouseListener() { - public void mouseClicked(MouseEvent arg0) { - } - - - public void mouseEntered(MouseEvent arg0) { - } - - - public void mouseExited(MouseEvent arg0) { - } - - - public void mousePressed(MouseEvent arg0) { - - } - - - public void mouseReleased(MouseEvent arg0) { + sendXMLToRepeater.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { IHttpRequestResponse iReqResp = invocation.getSelectedMessages()[0]; try { - byte[] request = Utilities.convertToXML(m_helpers, iReqResp); + byte[] request = Utilities.convertToXML(m_helpers, m_callbacks, iReqResp); if (request != null) { iReqResp.setRequest(request); } - } catch (Exception e) { - e.printStackTrace(); + } catch (Exception ex) { + ex.printStackTrace(); } } - }); - - sendJSONToRepeater.addMouseListener(new MouseListener() { - - public void mouseClicked(MouseEvent arg0) { - - } - - - public void mouseEntered(MouseEvent arg0) { - } - - - public void mouseExited(MouseEvent arg0) { - } - - - public void mousePressed(MouseEvent arg0) { - - } + }); - public void mouseReleased(MouseEvent arg0) { + sendJSONToRepeater.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { IHttpRequestResponse iReqResp = invocation.getSelectedMessages()[0]; try { - byte[] request = Utilities.convertToJSON(m_helpers, iReqResp); + byte[] request = Utilities.convertToJSON(m_helpers, m_callbacks, iReqResp); if (request != null) { iReqResp.setRequest(request); } - } catch (Exception e) { - e.printStackTrace(); + } catch (Exception ex) { + ex.printStackTrace(); } } }); + + menus.add(sendXMLToRepeater); menus.add(sendJSONToRepeater); return menus; diff --git a/ContentTypeConverter/src/main/java/burp/Utilities.java b/ContentTypeConverter/src/main/java/burp/Utilities.java index 07c75ee..e5da899 100644 --- a/ContentTypeConverter/src/main/java/burp/Utilities.java +++ b/ContentTypeConverter/src/main/java/burp/Utilities.java @@ -1,7 +1,6 @@ package burp; import com.google.gson.Gson; -import org.json.JSONArray; import org.json.JSONObject; import org.json.JSONTokener; import org.json.XML; @@ -14,16 +13,15 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import java.io.ByteArrayInputStream; -import java.io.StringWriter; -import java.io.UnsupportedEncodingException; -import java.io.Writer; +import java.io.*; import java.net.URLDecoder; import java.util.*; public class Utilities { + public static byte[] convertToXML(IExtensionHelpers helpers,IBurpExtenderCallbacks callbacks, IHttpRequestResponse requestResponse) throws Exception { - public static byte[] convertToXML(IExtensionHelpers helpers, IHttpRequestResponse requestResponse) throws Exception { + PrintWriter stdout = new PrintWriter(callbacks.getStdout(),true); + PrintWriter stderr = new PrintWriter(callbacks.getStderr(),true); byte[] request = requestResponse.getRequest(); @@ -341,6 +339,7 @@ public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws doc = builder.parse(input); }catch (Exception e){ + stderr.println(e); success = false; } @@ -367,10 +366,11 @@ public Node renameNode(Node n, String namespaceURI, String qualifiedName) throws } - public static byte[] convertToJSON(IExtensionHelpers helpers, IHttpRequestResponse requestResponse) { + public static byte[] convertToJSON(IExtensionHelpers helpers, IBurpExtenderCallbacks callbacks, IHttpRequestResponse requestResponse) { byte[] request = requestResponse.getRequest(); - + PrintWriter stdout = new PrintWriter(callbacks.getStdout(),true); + PrintWriter stderr = new PrintWriter(callbacks.getStderr(),true); if (Objects.equals(helpers.analyzeRequest(request).getMethod(), "GET")){ request = helpers.toggleRequestMethod(request); } @@ -399,6 +399,7 @@ public static byte[] convertToJSON(IExtensionHelpers helpers, IHttpRequestRespon json = body; } }catch (Exception e){ + stderr.println(e); success = false; }