Version: 4.0 Update
This commit is contained in:
@@ -5,13 +5,14 @@ import burp.api.montoya.http.message.HttpHeader;
|
||||
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.persistence.PersistedObject;
|
||||
import burp.api.montoya.ui.UserInterface;
|
||||
import burp.api.montoya.ui.editor.HttpRequestEditor;
|
||||
import burp.api.montoya.ui.editor.HttpResponseEditor;
|
||||
import hae.Config;
|
||||
import hae.cache.CachePool;
|
||||
import hae.utils.ConfigLoader;
|
||||
import hae.utils.project.FileProcessor;
|
||||
import hae.utils.DataManager;
|
||||
import hae.utils.string.HashCalculator;
|
||||
import hae.utils.string.StringProcessor;
|
||||
|
||||
@@ -97,10 +98,10 @@ public class MessageTableModel extends AbstractTableModel {
|
||||
splitPane.setRightComponent(messageTab);
|
||||
}
|
||||
|
||||
public void add(HttpRequestResponse messageInfo, String url, String method, String status, String length, String comment, String color, String hash, String path) {
|
||||
public void add(HttpRequestResponse messageInfo, String url, String method, String status, String length, String comment, String color, boolean flag) {
|
||||
synchronized (log) {
|
||||
boolean isDuplicate = false;
|
||||
MessageEntry logEntry = new MessageEntry(messageInfo, method, url, comment, length, color, status, hash, path);
|
||||
MessageEntry logEntry = new MessageEntry(messageInfo, method, url, comment, length, color, status);
|
||||
|
||||
byte[] reqByteA = new byte[0];
|
||||
byte[] resByteA = new byte[0];
|
||||
@@ -134,6 +135,18 @@ public class MessageTableModel extends AbstractTableModel {
|
||||
}
|
||||
|
||||
if (!isDuplicate) {
|
||||
if (flag) {
|
||||
DataManager dataManager = new DataManager(api);
|
||||
// 数据存储在BurpSuite空间内
|
||||
PersistedObject persistedObject = PersistedObject.persistedObject();
|
||||
persistedObject.setHttpRequestResponse("messageInfo", messageInfo);
|
||||
persistedObject.setString("comment", comment);
|
||||
persistedObject.setString("color", color);
|
||||
String uuidIndex = StringProcessor.getRandomUUID();
|
||||
dataManager.putData("message", uuidIndex, persistedObject);
|
||||
}
|
||||
|
||||
// 添加进日志
|
||||
log.add(logEntry);
|
||||
}
|
||||
}
|
||||
@@ -177,11 +190,10 @@ public class MessageTableModel extends AbstractTableModel {
|
||||
filteredLog.clear();
|
||||
|
||||
log.forEach(entry -> {
|
||||
MessageEntry finalEntry = getEntryByFile(entry);
|
||||
String host = StringProcessor.getHostByUrl(finalEntry.getUrl());
|
||||
String host = StringProcessor.getHostByUrl(entry.getUrl());
|
||||
if (!host.isEmpty()) {
|
||||
if (StringProcessor.matchesHostPattern(host, filterText) || filterText.contains("*")) {
|
||||
filteredLog.add(finalEntry);
|
||||
filteredLog.add(entry);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -189,34 +201,6 @@ public class MessageTableModel extends AbstractTableModel {
|
||||
fireTableDataChanged();
|
||||
}
|
||||
|
||||
private MessageEntry getEntryByFile(MessageEntry entry) {
|
||||
HttpRequestResponse requestResponse = entry.getRequestResponse();
|
||||
if (requestResponse == null) {
|
||||
String url = entry.getUrl();
|
||||
String method = entry.getMethod();
|
||||
String status = entry.getStatus();
|
||||
String comment = entry.getComment();
|
||||
String color = entry.getColor();
|
||||
String path = entry.getPath();
|
||||
String hash = entry.getHash();
|
||||
int length = Integer.parseInt(entry.getLength());
|
||||
|
||||
byte[] contents = FileProcessor.readFileContent(path, hash);
|
||||
|
||||
if (contents.length > length) {
|
||||
byte[] response = Arrays.copyOf(contents, length);
|
||||
byte[] request = Arrays.copyOfRange(contents, length, contents.length);
|
||||
requestResponse = StringProcessor.createHttpRequestResponse(url, request, response);
|
||||
|
||||
int index = log.indexOf(entry);
|
||||
entry = new MessageEntry(requestResponse, method, url, comment, String.valueOf(length), color, status, "", "");
|
||||
log.set(index, entry);
|
||||
}
|
||||
}
|
||||
|
||||
return entry;
|
||||
}
|
||||
|
||||
public void applyMessageFilter(String tableName, String filterText) {
|
||||
filteredLog.clear();
|
||||
for (MessageEntry entry : log) {
|
||||
|
||||
Reference in New Issue
Block a user