diff --git a/README.md b/README.md index 2f28f928..1d5d0d8c 100644 --- a/README.md +++ b/README.md @@ -48,10 +48,7 @@ CyberStrikeAI is an **AI-native security testing platform** built in Go. It inte MCP Management
MCP management - -MCP stdio Mode
-MCP stdio mode - + @@ -72,8 +69,14 @@ CyberStrikeAI is an **AI-native security testing platform** built in Go. It inte WebShell Management
WebShell Management - - + +MCP stdio Mode
+MCP stdio mode + + +Burp Suite Plugin
+Burp Suite plugin + diff --git a/README_CN.md b/README_CN.md index 36bd1dfe..301df3a3 100644 --- a/README_CN.md +++ b/README_CN.md @@ -47,10 +47,7 @@ CyberStrikeAI 是一款 **AI 原生安全测试平台**,基于 Go 构建,集 MCP 管理
MCP 管理 - -MCP stdio 模式
-MCP stdio 模式 - + @@ -71,8 +68,14 @@ CyberStrikeAI 是一款 **AI 原生安全测试平台**,基于 Go 构建,集 WebShell 管理
WebShell 管理 - - + +MCP stdio 模式
+MCP stdio 模式 + + +Burp Suite 插件
+Burp Suite 插件 + diff --git a/images/plugins.png b/images/plugins.png new file mode 100644 index 00000000..2ea4c5d2 Binary files /dev/null and b/images/plugins.png differ diff --git a/plugins/burp-suite/cyberstrikeai-burp-extension/dist/cyberstrikeai-burp-extension.jar b/plugins/burp-suite/cyberstrikeai-burp-extension/dist/cyberstrikeai-burp-extension.jar index 0f3e9d52..5f64ac3e 100644 Binary files a/plugins/burp-suite/cyberstrikeai-burp-extension/dist/cyberstrikeai-burp-extension.jar and b/plugins/burp-suite/cyberstrikeai-burp-extension/dist/cyberstrikeai-burp-extension.jar differ diff --git a/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/CyberStrikeAITab.java b/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/CyberStrikeAITab.java index 29a24f03..410d1031 100644 --- a/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/CyberStrikeAITab.java +++ b/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/CyberStrikeAITab.java @@ -439,7 +439,7 @@ final class CyberStrikeAITab implements ITab { if (run == null) return; String token = getToken(); if (token == null || token.trim().isEmpty()) { - appendToRun(runId, "\n[error] Not validated.\n"); + appendProgressToRun(runId, "\n[error] Not validated.\n"); return; } String convId; @@ -447,7 +447,7 @@ final class CyberStrikeAITab implements ITab { convId = run.conversationId; } if (convId == null || convId.trim().isEmpty()) { - appendToRun(runId, "\n[info] conversationId not available yet (wait for server to create session).\n"); + appendProgressToRun(runId, "\n[info] conversationId not available yet (wait for server to create session).\n"); return; } @@ -456,10 +456,10 @@ final class CyberStrikeAITab implements ITab { try { CyberStrikeAIClient.Config cfg = currentConfig(); client.cancelByConversationId(cfg.baseUrl, token, convId); - appendToRun(runId, "\n[info] Cancel requested.\n"); + appendProgressToRun(runId, "\n[info] Cancel requested.\n"); setRunStatus(runId, "cancelling"); } catch (Exception ex) { - appendToRun(runId, "\n[error] Cancel failed: " + ex.getMessage() + "\n"); + appendProgressToRun(runId, "\n[error] Cancel failed: " + ex.getMessage() + "\n"); } finally { SwingUtilities.invokeLater(() -> stopButton.setEnabled(true)); } diff --git a/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/MarkdownRenderer.java b/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/MarkdownRenderer.java index 1fdd7043..f7102c35 100644 --- a/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/MarkdownRenderer.java +++ b/plugins/burp-suite/cyberstrikeai-burp-extension/src/main/java/burp/MarkdownRenderer.java @@ -24,7 +24,10 @@ final class MarkdownRenderer { // so we explicitly define font sizes to keep a clear hierarchy. .append("body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;font-size:13px;line-height:1.45;margin:10px;color:#111;}") .append("code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;}") - .append("pre{background:#f6f8fa;border:1px solid #e5e7eb;border-radius:6px;padding:10px;overflow:auto;}") + // Keep inline code readable (Swing may render it too small otherwise). + .append("code{font-size:0.95em;background:#f6f8fa;border:1px solid #e5e7eb;border-radius:4px;padding:0 4px;}") + .append("pre{font-size:0.95em;background:#f6f8fa;border:1px solid #e5e7eb;border-radius:6px;padding:10px;overflow:auto;}") + .append("pre code{font-size:1em;background:transparent;border:none;padding:0;}") .append("p{margin:0.55em 0;}") .append("h1{font-size:20px;margin:0.85em 0 0.45em 0;}") .append("h2{font-size:18px;margin:0.85em 0 0.45em 0;}") diff --git a/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/CyberStrikeAITab.class b/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/CyberStrikeAITab.class index a01eb1ba..aab4f092 100644 Binary files a/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/CyberStrikeAITab.class and b/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/CyberStrikeAITab.class differ diff --git a/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/MarkdownRenderer.class b/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/MarkdownRenderer.class index 2a5267b7..8e547158 100644 Binary files a/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/MarkdownRenderer.class and b/plugins/burp-suite/cyberstrikeai-burp-extension/target/classes/burp/MarkdownRenderer.class differ diff --git a/plugins/burp-suite/cyberstrikeai-burp-extension/target/cyberstrikeai-burp-extension-1.0.0.jar b/plugins/burp-suite/cyberstrikeai-burp-extension/target/cyberstrikeai-burp-extension-1.0.0.jar index 0f3e9d52..5f64ac3e 100644 Binary files a/plugins/burp-suite/cyberstrikeai-burp-extension/target/cyberstrikeai-burp-extension-1.0.0.jar and b/plugins/burp-suite/cyberstrikeai-burp-extension/target/cyberstrikeai-burp-extension-1.0.0.jar differ