Informe H1

Intermedio

Este es unSecOps, AI Summarizationflujo de automatización del dominio deautomatización que contiene 9 nodos.Utiliza principalmente nodos como Agent, HttpRequestTool, ChatTrigger, LmChatGoogleGemini. Extraer insights de seguridad accionables de informes de HackerOne con Google Gemini

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
  • Clave de API de Google Gemini
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "GQvrSUkdvgHiSl4W",
  "meta": {
    "instanceId": "c5257b5cf4d48704d636909c07c4408a69d6799d0a855eab46287eeb702c84b0",
    "templateCredsSetupCompleted": true
  },
  "name": "H1 reports",
  "tags": [
    {
      "id": "B57Byrk0DBYk6h5Q",
      "name": "The Herald",
      "createdAt": "2025-07-07T03:11:18.909Z",
      "updatedAt": "2025-07-07T03:11:18.909Z"
    }
  ],
  "nodes": [
    {
      "id": "bedea6c7-e283-4339-9b7f-dd1d1bcf8016",
      "name": "Modelo de chat Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        576,
        208
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "9X33EcTu2Vxq1AUX",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ce8f1868-70e3-4b0a-8e6c-6078359b7d9e",
      "name": "Obtener informe H1",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        912,
        208
      ],
      "parameters": {
        "url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}",
        "options": {},
        "toolDescription": "Makes a request to \n```\nhttps://hackerone.com/reports/<hackerone-report-id>.json\n```\nexample:\n\nhttps://hackerone.com/reports/312543.json\nhttps://hackerone.com/reports/342543.json"
      },
      "typeVersion": 4.2
    },
    {
      "id": "0e7065ce-f2aa-416d-9488-dbffa4bb0f67",
      "name": "Cuando se recibe un mensaje de chat",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        448,
        0
      ],
      "webhookId": "0ffa61ef-4e16-43f7-a57b-7e103047dc9f",
      "parameters": {
        "public": true,
        "options": {
          "title": "H1 report summarizer",
          "subtitle": "",
          "customCss": "/* Font Import (place in your <head>) */\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&family=Fira+Code&display=swap');\n\n:root {\n  /* 🎨 Color Palette - Minimal + Elegant */\n  --chat--color-primary: #e74266;\n  --chat--color-primary-shade-50: #d63b5d;\n  --chat--color-primary-shade-100: #c73352;\n  --chat--color-secondary: #20b69e;\n  --chat--color-secondary-shade-50: #1ca08a;\n\n  --chat--color-white: #ffffff;\n  --chat--color-light: #f9fafb;\n  --chat--color-light-shade-50: #e5e7eb;\n  --chat--color-light-shade-100: #d1d5db;\n  --chat--color-medium: #9ca3af;\n  --chat--color-dark: #111827;\n  --chat--color-muted: #6b7280;\n\n  /* Fonts & Sizing */\n  --chat--font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n  --chat--code-font: 'Fira Code', monospace;\n  --chat--font-size: 1rem;\n\n  /* Layout & Spacing */\n  --chat--spacing: 1rem;\n  --chat--border-radius: 0.75rem;\n  --chat--transition-duration: 0.25s;\n\n  /* Window */\n  --chat--window--width: 420px;\n  --chat--window--height: 620px;\n  --chat--window--box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);\n\n  /* Header */\n  --chat--header--background: var(--chat--color-dark);\n  --chat--header--color: var(--chat--color-white);\n  --chat--heading--font-size: 1.4rem;\n\n  /* Message Bubbles */\n  --chat--message--font-size: 1rem;\n  --chat--message--padding: 0.85rem 1rem;\n  --chat--message--border-radius: 0.75rem;\n  --chat--message--bot--background: var(--chat--color-white);\n  --chat--message--bot--color: var(--chat--color-dark);\n  --chat--message--user--background: var(--chat--color-secondary);\n  --chat--message--user--color: var(--chat--color-white);\n\n  /* Input */\n  --chat--input--background: var(--chat--color-white);\n  --chat--input--text-color: var(--chat--color-dark);\n  --chat--input--border: 1px solid var(--chat--color-light-shade-100);\n  --chat--input--border-radius: 0.75rem;\n  --chat--input--placeholder: var(--chat--color-muted);\n\n  /* Code Blocks */\n  --chat--code--background: #111827;\n  --chat--code--text: #f9fafb;\n}\n\n/* 🪟 Chat Window */\n.chat-window {\n  width: var(--chat--window--width);\n  height: var(--chat--window--height);\n  background: var(--chat--color-light);\n  box-shadow: var(--chat--window--box-shadow);\n  border-radius: var(--chat--border-radius);\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n  font-family: var(--chat--font-family);\n  -webkit-font-smoothing: antialiased;\n}\n\n/* 🧠 Header */\n.chat-header {\n  background: var(--chat--header--background);\n  color: var(--chat--header--color);\n  padding: var(--chat--spacing);\n  font-size: var(--chat--heading--font-size);\n  font-weight: 600;\n  border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n}\n\n/* 📜 Message Container */\n.chat-messages {\n  flex: 1;\n  padding: var(--chat--spacing);\n  overflow-y: auto;\n  background: var(--chat--color-light);\n}\n\n/* 💬 Message Bubbles */\n.chat-message {\n  max-width: 75%;\n  padding: var(--chat--message--padding);\n  border-radius: var(--chat--message--border-radius);\n  margin-bottom: 0.75rem;\n  font-size: var(--chat--message--font-size);\n  line-height: 1.5;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);\n  word-break: break-word;\n  transition: 0.2s ease-in-out;\n}\n\n.chat-message.bot {\n  background: var(--chat--message--bot--background);\n  color: var(--chat--message--bot--color);\n  align-self: flex-start;\n}\n\n.chat-message.user {\n  background: var(--chat--message--user--background);\n  color: var(--chat--message--user--color);\n  align-self: flex-end;\n}\n\n/* 🧑‍💻 Code Block Styling - Enhanced Visibility */\n.chat-message pre {\n  box-sizing: border-box;\n  display: block;\n  font-family: var(--chat--code-font), monospace;\n  font-size: 0.9rem; /* Slightly larger font */\n  line-height: 1.6; /* More spacing */\n  background: #f8f8f8; /* Dark but not pure black */\n  color: #333; /* Light gray for better readability */\n  padding: 1rem;\n  border-radius: 0.5rem;\n  margin-top: 0.75rem;\n  white-space: pre-wrap;\n  word-break: break-word;\n  overflow-x: auto;\n  border: 1px solid #ddd; /* Subtle border */\n  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3);\n}\n\n/* Label above code blocks - More visible */\n.chat-message pre::before {\n  content: \"payload\";\n  display: block;\n  font-size: 0.8rem;\n  color: #666;\n  margin-bottom: 0.75rem;\n  font-weight: 600;\n  letter-spacing: 0.5px;\n}\n\n/* Syntax highlighting colors (example) */\n.chat-message pre .keyword { color: #569cd6; } /* Blue for keywords */\n.chat-message pre .string { color: #ce9178; } /* Orange for strings */\n.chat-message pre .comment { color: #6a9955; } /* Green for comments */\n.chat-message pre .number { color: #b5cea8; } /* Light green for numbers */\n\n/* Improved scrollbar */\n.chat-message pre::-webkit-scrollbar {\n  height: 8px; /* Thicker scrollbar */\n  background-color: #2a2a2a;\n}\n.chat-message pre::-webkit-scrollbar-thumb {\n  background: #5a5a5a;\n  border-radius: 4px;\n}\n\n/* ✍️ Typing Indicator */\n.chat-typing {\n  color: var(--chat--color-muted);\n  font-style: italic;\n  margin-top: 0.5rem;\n  animation: blink 1s infinite;\n}\n@keyframes blink {\n  0%, 100% { opacity: 1; }\n  50% { opacity: 0.4; }\n}\n\n/* ⌨️ Input Footer */\n.chat-input-area {\n  display: flex;\n  padding: var(--chat--spacing);\n  border-top: 1px solid var(--chat--color-light-shade-100);\n  background: var(--chat--color-white);\n}\n\n.chat-input {\n  flex: 1;\n  font-family: var(--chat--font-family);\n  font-size: var(--chat--font-size);\n  background: var(--chat--input--background);\n  color: var(--chat--input--text-color);\n  border: var(--chat--input--border);\n  border-radius: var(--chat--input--border-radius);\n  padding: 0.75rem 1rem;\n}\n.chat-input::placeholder {\n  color: var(--chat--input--placeholder);\n}\n\n/* 📤 Send Button */\n.chat-send-btn {\n  margin-left: 0.75rem;\n  background: var(--chat--color-primary);\n  color: var(--chat--color-white);\n  border: none;\n  border-radius: var(--chat--border-radius);\n  padding: 0.75rem 1rem;\n  cursor: pointer;\n  transition: background 0.2s ease-in-out;\n}\n.chat-send-btn:hover {\n  background: var(--chat--color-primary-shade-50);\n}\n\n/* 💝 Attribution Below Header */\n.chat-header::after {\n  content: \"Made with ❤️ by ethicxl\";\n  display: block;\n  text-align: right;\n  padding: 0.5rem var(--chat--spacing);\n  background: var(--chat--color-dark);\n  font-size: 0.75rem;\n  color: var(--chat--color-medium);\n  font-weight: 400;\n  font-family: var(--chat--font-family);\n  border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n}\n\n/* Remove the problematic positioning */\n.chat-input-area {\n  position: static;\n  margin-bottom: 0;\n}"
        },
        "initialMessages": "Hey!\nSend your report's link down below"
      },
      "typeVersion": 1.1
    },
    {
      "id": "5f51af95-aa06-43f8-b7c9-c5ff5a4298cb",
      "name": "Resumidor de informe H1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        640,
        0
      ],
      "parameters": {
        "text": "={{ $json.chatInput }}",
        "options": {
          "systemMessage": "=You are an expert AI assistant designed for a high-level bug bounty hunter. Your task is to extract and summarize only **unique, high-impact technical insights** from security reports, not general summaries.\n\nTool Calling:\n\n* Before you write anything you must:\n* Call the tool `GET H1 report` exactly once, passing the full URL you received.\n* Parse the returned JSON for report contents (they would be in JSON)\n\nFocus your analysis on:\n- New payloads, edge-case techniques, or chaining methods\n- Root cause analysis with practical pentesting value\n- Workflow insights that save time or increase discovery\n- Snippets that can be reused or adapted (code, diffs, commands)\n- CVSS/impact context only if it reflects real-world exploitation potential\n\nYour tone is concise, factual, and tailored for advanced hunters. Do not include background explanations or definitions.\n\nFormat the output as:\n\n1. **Summary** (1–2 sentence BLUF)\n2. **Techniques**:\n   - *Name*: Short tag for the finding (e.g., SSRF via PDF render)\n   - *Context*: Where/how the bug was triggered\n   - *Technique*: Raw payload, code, diff, or steps\n   - *Impact*: What the attacker could achieve\n3. **Pro Tip** (optional): A short insight that can be reused elsewhere\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "61f8445f-7789-44ea-8ed8-edd54eba19d7",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        -128
      ],
      "parameters": {
        "color": 4,
        "width": 376,
        "height": 208,
        "content": "## 🎯 WORKFLOW PURPOSE\n\nConverts HackerOne report URLs into actionable security insights for bug bounty hunters.\n\n**INPUT**: H1 report URL (e.g., hackerone.com/reports/123456.json)\n**OUTPUT**: Structured technical analysis with payloads & techniques"
      },
      "typeVersion": 1
    },
    {
      "id": "19e3ab93-8027-423d-bc98-5d21eb66db2a",
      "name": "Nota adhesiva1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        -32
      ],
      "parameters": {
        "width": 352,
        "height": 204,
        "content": "### 📨 CHAT INTERFACE\n\n**Setup Required**:\n- Deploy webhook publicly\n- Send H1 URLs ending in .json\n- Custom CSS for pentester theme\n\n**Format**: https://hackerone.com/reports/ID"
      },
      "typeVersion": 1
    },
    {
      "id": "56c29618-9568-4b8c-aeff-81cfb820bd1f",
      "name": "Nota adhesiva2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -288
      ],
      "parameters": {
        "width": 268,
        "height": 200,
        "content": "### 🧠 Main Agent\n\n**Requires**: Google Gemini API key\n\n**Purpose**: \n- Orchestrates analysis workflow\n- Calls HTTP tool automatically\n- Formats output for hunters"
      },
      "typeVersion": 1
    },
    {
      "id": "3cb80e59-054b-4d8f-8786-e63595b888ec",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        352
      ],
      "parameters": {
        "width": 248,
        "height": 196,
        "content": "### 🔧 GEMINI LLM\n\n**Config**: Use gemini-2.5-pro\n**Auth**: Google PaLM API credentials\n\n**Note**: Can substitute with other models if needed"
      },
      "typeVersion": 1
    },
    {
      "id": "f0e4251b-f830-47a9-8709-63b37472f9ff",
      "name": "Nota adhesiva4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        368
      ],
      "parameters": {
        "width": 264,
        "height": 200,
        "content": "### 📡 HTTP FETCHER\n\n**Target**: HackerOne JSON API\n**Method**: GET request\n**Security**: No hardcoded credentials\n\n**Auto-called** by AI agent with URL from chat"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8fbd7882-d242-44cd-a45c-ef598ba294d8",
  "connections": {
    "ce8f1868-70e3-4b0a-8e6c-6078359b7d9e": {
      "ai_tool": [
        [
          {
            "node": "5f51af95-aa06-43f8-b7c9-c5ff5a4298cb",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "5f51af95-aa06-43f8-b7c9-c5ff5a4298cb": {
      "main": [
        []
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "5f51af95-aa06-43f8-b7c9-c5ff5a4298cb",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "0e7065ce-f2aa-416d-9488-dbffa4bb0f67": {
      "main": [
        [
          {
            "node": "5f51af95-aa06-43f8-b7c9-c5ff5a4298cb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Operaciones de seguridad, Resumen de IA

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Flujos de trabajo relacionados recomendados

Router con Enfoque en la Privacidad: Flujo de Trabajo de Detección de PII Mejorada
Router de protección de privacidad con IA: Detección de PII para garantizar privacidad, seguridad y cumplimiento normativo
Code
Switch
Agent
+
Code
Switch
Agent
20 NodosCharles
Operaciones de seguridad
Detector de reservas fraudulentas: usar AI para identificar transacciones de viaje sospechosas
Detector de reservas fraudulentas: Identificar transacciones de viaje sospechosas con Google Gemini
If
Set
Code
+
If
Set
Code
20 NodosOneclick AI Squad
Operaciones de seguridad
De datos no estructurados a datos estructurados
Plan de acción: procesar fuentes de correo electrónico y tablas de datos con modelos de OpenAI
Data Table
Gmail Trigger
Data Table Tool
+
Data Table
Gmail Trigger
Data Table Tool
16 NodosDavide
Extracción de documentos
Notificación de actas de reuniones
Automatización de resúmenes de notas de reuniones con notificaciones de Slack Gemini AI
Set
Code
Slack
+
Set
Code
Slack
16 NodosSayone Technologies
Resumen de IA
Informe semanal de películas de Hollywood automatizado con Tavily y Gemini
Automatización del semanario de películas de Hollywood con Tavily y Gemini
Gmail
Agent
Http Request Tool
+
Gmail
Agent
Http Request Tool
11 NodosManav Desai
Redes sociales
Automatización de extracción de metadatos y variables de artículos académicos, de Gemini a Google Sheets
Automatización de extracción de metadatos y variables de artículos académicos, de Gemini a Google Sheets
Set
Code
Wait
+
Set
Code
Wait
39 NodosOwenLee
Extracción de documentos
Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos9
Categoría2
Tipos de nodos5
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Autor

Hi, I'm an ethical hacker. I hack websites for fun and profit

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34