Skip to content

Commit

Permalink
Merge pull request #40 from CYS4srl/context-menu
Browse files Browse the repository at this point in the history
Improve Logger context-menu + minor fixes
  • Loading branch information
beryxz authored Feb 27, 2024
2 parents c72feaa + 74efa0a commit 3c59345
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@
package com.cys4.sensitivediscoverer.component;

import burp.api.montoya.MontoyaApi;
import burp.api.montoya.core.Annotations;
import burp.api.montoya.core.ByteArray;
import burp.api.montoya.http.message.HttpRequestResponse;
import burp.api.montoya.http.message.requests.HttpRequest;
import burp.api.montoya.http.message.responses.HttpResponse;
import burp.api.montoya.proxy.ProxyHttpRequestResponse;
import burp.api.montoya.ui.editor.HttpRequestEditor;
import burp.api.montoya.ui.editor.HttpResponseEditor;
import com.cys4.sensitivediscoverer.model.LogEntity;
import com.cys4.sensitivediscoverer.model.LogsTableModel;
import com.cys4.sensitivediscoverer.model.RegexEntity;

import javax.swing.*;
import java.awt.*;
Expand All @@ -31,40 +36,62 @@ public LogsTableContextMenu(LogEntity logEntry,
LogsTable logsTable,
MontoyaApi burpApi,
boolean isAnalysisRunning) {
RegexEntity regexEntity = logEntry.getRegexEntity();
ProxyHttpRequestResponse requestResponse = logEntry.getRequestResponse();
Clipboard systemClipboard = Toolkit.getDefaultToolkit().getSystemClipboard();

JMenuItem sendToRepeater = new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-sendToRepeater")) {
@Override
public void actionPerformed(ActionEvent e) {
burpApi.repeater().sendToRepeater(logEntry.getRequestResponse().request(), logEntry.getRegexEntity().getDescription());
burpApi.repeater().sendToRepeater(requestResponse.finalRequest(), regexEntity.getDescription());
}
});
this.add(sendToRepeater);

JMenuItem sendToIntruder = new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-sendToIntruder")) {
@Override
public void actionPerformed(ActionEvent e) {
burpApi.intruder().sendToIntruder(logEntry.getRequestResponse().request());
burpApi.intruder().sendToIntruder(requestResponse.finalRequest());
}
});
this.add(sendToIntruder);

JMenuItem sendToOrganizer = new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-sendToOrganizer")) {
@Override
public void actionPerformed(ActionEvent e) {
burpApi.organizer().sendToOrganizer(HttpRequestResponse.httpRequestResponse(
requestResponse.finalRequest(),
requestResponse.response(),
Annotations.annotations(logEntry.getMatch())));
}
});
this.add(sendToOrganizer);

JMenu sendToComparer = new JMenu(getLocaleString("logger-ctxMenu-sendToComparer"));
JMenuItem comparerRequest = new JMenuItem(new AbstractAction(getLocaleString("common-request")) {
@Override
public void actionPerformed(ActionEvent actionEvent) {
burpApi.comparer().sendToComparer(logEntry.getRequestResponse().finalRequest().toByteArray());
burpApi.comparer().sendToComparer(requestResponse.finalRequest().toByteArray());
}
});
sendToComparer.add(comparerRequest);

JMenuItem comparerResponse = new JMenuItem(new AbstractAction(getLocaleString("common-response")) {
@Override
public void actionPerformed(ActionEvent actionEvent) {
burpApi.comparer().sendToComparer(logEntry.getRequestResponse().response().toByteArray());
burpApi.comparer().sendToComparer(requestResponse.response().toByteArray());
}
});
sendToComparer.add(comparerRequest);
sendToComparer.add(comparerResponse);
this.add(sendToComparer);

JMenuItem sendToDecoder = new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-sendToDecoder")) {
@Override
public void actionPerformed(ActionEvent e) {
burpApi.decoder().sendToDecoder(ByteArray.byteArray(logEntry.getMatch()));
}
});
this.add(sendToDecoder);

this.add(new JPopupMenu.Separator());
JMenuItem removeItem = new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-removeItem")) {
@Override
Expand All @@ -86,36 +113,32 @@ public void actionPerformed(ActionEvent actionEvent) {
this.add(new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-copyURL")) {
@Override
public void actionPerformed(final ActionEvent e) {
StringSelection selection = new StringSelection(logEntry.getRequestResponse().finalRequest().url());
Clipboard system = Toolkit.getDefaultToolkit().getSystemClipboard();
system.setContents(selection, selection);
StringSelection selection = new StringSelection(requestResponse.finalRequest().url());
systemClipboard.setContents(selection, selection);
}
}));

this.add(new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-copyDescription")) {
@Override
public void actionPerformed(final ActionEvent e) {
StringSelection selection = new StringSelection(logEntry.getRegexEntity().getDescription());
Clipboard system = Toolkit.getDefaultToolkit().getSystemClipboard();
system.setContents(selection, selection);
StringSelection selection = new StringSelection(regexEntity.getDescription());
systemClipboard.setContents(selection, selection);
}
}));

this.add(new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-copyRegex")) {
@Override
public void actionPerformed(final ActionEvent e) {
StringSelection selection = new StringSelection(logEntry.getRegexEntity().getRegex());
Clipboard system = Toolkit.getDefaultToolkit().getSystemClipboard();
system.setContents(selection, selection);
StringSelection selection = new StringSelection(regexEntity.getRegex());
systemClipboard.setContents(selection, selection);
}
}));

this.add(new JMenuItem(new AbstractAction(getLocaleString("logger-ctxMenu-copyMatch")) {
@Override
public void actionPerformed(final ActionEvent e) {
StringSelection selection = new StringSelection(logEntry.getMatch());
Clipboard system = Toolkit.getDefaultToolkit().getSystemClipboard();
system.setContents(selection, selection);
systemClipboard.setContents(selection, selection);
}
}));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,15 @@ public boolean equals(Object o) {
return this.getRegex().equals(that.getRegex());
}

@Override
public String toString() {
return "RegexEntity{" +
"regex='" + regex + '\'' +
", description='" + description + '\'' +
", sections=" + sections +
'}';
}

@Override
public int hashCode() {
return Objects.hash(this.getRegex());
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/cys4/sensitivediscoverer/tab/LoggerTab.java
Original file line number Diff line number Diff line change
Expand Up @@ -296,10 +296,10 @@ private void onMouseEvent(MouseEvent e) {
logsTable.setRowSelectionInterval(row, row);
if (logsTable.getSelectedRowCount() == 1) {
int realRow = logsTable.convertRowIndexToModel(row);
LogEntity logentry = logEntries.get(realRow);
LogEntity logEntry = logEntries.get(realRow);

if (e.getComponent() instanceof LogsTable) {
new LogsTableContextMenu(logentry, logEntries, originalRequestViewer, originalResponseViewer, logsTableModel, logsTable, mainUI.getBurpApi(), isAnalysisRunning)
new LogsTableContextMenu(logEntry, logEntries, originalRequestViewer, originalResponseViewer, logsTableModel, logsTable, mainUI.getBurpApi(), isAnalysisRunning)
.show(e.getComponent(), e.getX(), e.getY());
}
}
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/TextUI_en_US.properties
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ logger-clearLogs-confirm=Delete ALL the logs in the list?
logger-exportLogs-label=Export logs...
logger-ctxMenu-sendToRepeater=Send to Repeater
logger-ctxMenu-sendToIntruder=Send to Intruder
logger-ctxMenu-sendToOrganizer=Send to Organizer
logger-ctxMenu-sendToComparer=Send to Comparer
logger-ctxMenu-sendToDecoder=Send to Decoder
logger-ctxMenu-removeItem=Remove Item
logger-ctxMenu-copyURL=Copy URL
logger-ctxMenu-copyDescription=Copy Description
Expand Down
6 changes: 4 additions & 2 deletions src/main/resources/regexes/regex_token.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -277,13 +277,15 @@
{
"active": true,
"description": "Square Auth Token",
"regex": "(?<![a-zA-Z0-9])EAAA[a-zA-Z0-9\\-_]{60}",
"regex": "(?<![a-zA-Z0-9\/+])EAAA[a-zA-Z0-9\\-_]{60}",
"urls": [
"https://developer.squareup.com/docs/build-basics/access-tokens"
],
"tests": [
"EAAAEB0XZqkuXAPRKhusNNaHhrZUsZNKw_ay92e-kmhYSDrKo73FgPX9RsrFr3Fg",
"!RandomEAAAEB0XZqkuXAPRKhusNNaHhrZUsZNKw_ay92e-kmhYSDrKo73FgPX9RsrFr3Fg"
"!RandomEAAAEB0XZqkuXAPRKhusNNaHhrZUsZNKw_ay92e-kmhYSDrKo73FgPX9RsrFr3Fg",
"!/EAAAEB0XZqkuXAPRKhusNNaHhrZUsZNKw_ay92e-kmhYSDrKo73FgPX9RsrFr3Fg",
"!+EAAAEB0XZqkuXAPRKhusNNaHhrZUsZNKw_ay92e-kmhYSDrKo73FgPX9RsrFr3Fg"
]
},
// {
Expand Down

0 comments on commit 3c59345

Please sign in to comment.