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.




## 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.