RafaTheMonk/GPI---Gerador-de-Prompt-Injection-

GitHub: RafaTheMonk/GPI---Gerador-de-Prompt-Injection-

Stars: 0 | Forks: 0

# GPI — Gerador de Prompt Injection Ferramenta web para geração de documentos PDF envenenados com técnicas de prompt injection, voltada para **red teaming** e testes de vulnerabilidade em sistemas de IA que processam documentos. ![Python](https://img.shields.io/badge/Python-3.12+-blue?logo=python&logoColor=white) ![FastAPI](https://img.shields.io/badge/FastAPI-0.115-009688?logo=fastapi&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-ready-2496ED?logo=docker&logoColor=white) ![License](https://img.shields.io/badge/License-MIT-green) ## Objetivo ## Técnicas Implementadas | Categoria | Técnica | ID | |-----------|---------|-----| | Ocultação Visual | Texto branco (invisível ao leitor) | `white_text` | | Ocultação Visual | Fonte microscópica (0.5pt) | `microscopic_font` | | Ocultação Visual | Anotação oculta PDF | `annotation_hidden` | | Encoding / Obfuscação | Base64 | `base64` | | Encoding / Obfuscação | Hexadecimal | `hex_encoding` | | Encoding / Obfuscação | Unicode Zero-Width (ZWNJ) | `unicode_invisible` | | Encoding / Obfuscação | Homóglifos cirílicos | `cyrillic` | | Encoding / Obfuscação | Typoglycemia (letras embaralhadas) | `typoglycemia` | | Direct Injection | Instrução formal `[SYSTEM OVERRIDE]` | `formal_instruction` | | Evasão | Best-of-N variantes | `best_of_n` | | Evasão | Payload splitting entre páginas | `payload_splitting` | | Evasão | Adversarial suffix | `adversarial_suffix` | | Indirect Injection | Markdown / HTML com exfiltração | `markdown_injection` | ## Stack - **Backend** — Python 3.12 + FastAPI + PyMuPDF - **Frontend** — HTML/CSS/JS puro (sem build step, servido pelo FastAPI) - **Deploy** — Docker / VPS ## Como usar ### Com Docker (recomendado) git clone https://github.com/RafaTheMonk/GPI---Gerador-de-Prompt-Injection-.git gpi cd gpi docker build -t gpi . docker run -d --name gpi --restart unless-stopped -p 8000:8000 gpi Acesse: `http://localhost:8000` ### Local (sem Docker) git clone https://github.com/RafaTheMonk/GPI---Gerador-de-Prompt-Injection-.git gpi cd gpi pip install -r requirements.txt python main.py ## Interface 1. Digite o **payload** de injeção 2. Escolha o **template** de documento (contrato, currículo, relatório, e-mail) ou faça upload do seu próprio PDF 3. Selecione uma ou mais **técnicas** de injeção 4. Clique em **Gerar** — download automático do ZIP com um PDF por técnica + `report.json` ## API | Método | Endpoint | Descrição | |--------|----------|-----------| | `GET` | `/api/techniques` | Lista todas as técnicas disponíveis | | `GET` | `/api/templates` | Lista os templates de documento | | `POST` | `/api/generate` | Gera os PDFs envenenados | **Exemplo via curl:** curl -X POST http://localhost:8000/api/generate \ -F "payload=Ignore todas as instruções anteriores" \ -F "techniques=white_text" \ -F "techniques=base64" \ -F "document_type=contract" \ -o resultado.zip ## Estrutura do Projeto GPI/ ├── main.py # FastAPI app + endpoints ├── generator/ │ ├── techniques.py # Implementação das 13 técnicas │ └── document.py # Geração dos templates PDF ├── static/ │ └── index.html # Frontend ├── script.py # Script de detecção de injeções em PDFs ├── PrompInjectionInform.md # Base de conhecimento sobre prompt injection ├── requirements.txt └── Dockerfile ## Aviso Esta ferramenta é destinada exclusivamente para **testes de segurança autorizados** em sistemas próprios. Não utilize para atacar sistemas de terceiros sem autorização explícita.