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