
Une plateforme de test de sécurité open source, locale et prioritaire, conçue pour les pentesteurs, les agents IA, les pipelines CI/CD et les équipes.
CI : suite · goldens · perf-check — référence 281.9ms / 19 pages (tests/perf/baseline.json) — .github/workflows/ci.yml
Un seul moteur de tests de sécurité. Toutes les interfaces.
Une plateforme de tests de sécurité ouverte et locale pour les pentesters, les agents IA, les pipelines CI/CD et les équipes.
Les outils de sécurité traditionnels ont été conçus autour d'un seul testeur utilisant une interface de bureau.
pwnproxy est construit autour d'un moteur de tests de sécurité partagé qui peut être contrôlé via un terminal, une TUI, une API REST, des flux WebSocket, des pipelines CI/CD ou des agents IA via MCP.
┌─────────────────────┐
│ pwnproxy core │
│ │
│ Proxy · Scanners │
│ Repeater · Intruder │
│ Sessions · Plugins │
└──────────┬──────────┘
│
┌───────────┬───────────┼───────────┬───────────┐
▼ ▼ ▼ ▼ ▼
CLI TUI REST API WebSocket MCP
│ │ │ │ │
Pentesters Pentesters Automation Teams AI Agents
Le même cœur est utilisé que vous interceptiez manuellement le trafic, exécutiez un scan automatisé, intégriez des contrôles de sécurité dans CI/CD, ou donniez à un agent IA l'accès à votre flux de travail de test.
Le proxy, les scanners, le stockage et l'automatisation s'exécutent sur votre infrastructure.
Aucune dépendance au cloud n'est requise pour le flux de travail de test principal.
La CLI, la TUI, l'API REST, les flux WebSocket et le serveur MCP sont des interfaces vers le même système sous-jacent.
Vous n'avez pas besoin d'outils séparés pour les tests manuels et l'automatisation.
Lancez des scans directement depuis la ligne de commande, consommez une sortie JSON ou SARIF, et intégrez les résultats dans les pipelines CI/CD.
pwnproxy expose ses capacités via un serveur MCP natif afin que les agents IA compatibles puissent interagir avec le même moteur de test utilisé par les opérateurs humains.
Les scanners et les hooks utilisent une architecture de plugins conçue pour les extensions intégrées et tierces.
git clone https://github.com/ericmtzmtz/pwnproxy.git
cd pwnproxy
poetry install
Python 3.12 ou version ultérieure est requis.
poetry run pwnproxy start --proxy-port 8080 --api-port 8000
127.0.0.1:8080127.0.0.1:8000http://127.0.0.1:8000/docscurl -x http://127.0.0.1:8080 http://httpbin.org/get
poetry run pwnproxy history
poetry run pwnproxy scan url https://example.com \
--scanners sqli,xss \
--output sarif \
--output-file report.sarif
Codes de sortie :
| Code | Signification |
|---|---|
| 0 | Analyse terminée, aucun résultat |
| 1 | Analyse terminée, résultats trouvés |
| 2 | Erreur |
pwnproxy est actuellement installé depuis les sources via Poetry (0.1.0 pré-version ; 0.2.0-dev dans CHANGELOG.md). Un empaquetage PyPI est prévu pour une future version.
La configuration se trouve dans ~/.pwnproxy/config.toml — voir config.example.toml pour [triage] / [llm] / max_llm_per_scan et les paramètres de périmètre. Les tests de base (proxy, scanners, stockage) fonctionnent sans clé API LLM ; le triage s'exécute par défaut sur des heuristiques.
Mettez en pause, inspectez, modifiez et reprenez le trafic HTTP/HTTPS.
Les scanners intégrés incluent actuellement :
| Scanner | Détection |
|---|---|
| SQLi | Basée sur les erreurs (signatures + 5xx atténués avec contrôles négatifs / garde-fous anti-WAF), booléenne à l'aveugle (multi-tours + référence), temporelle, OOB |
| XSS | Réfléchie/stockée avec exploitabilité contextuelle (réflexion ≠ XSS) ; signaux statiques de sinks DOM (dom-xss, inférés) |
| LFI | Signatures de contenu, traversée de répertoires et wrappers PHP |
| XXE | Basée sur les erreurs, XInclude, mutation JSON et workflows OOB |
| SSRF | Confirmation OOB/callback uniquement (fail-closed ; pas de SSRF spéculative basée sur les erreurs) |
Les résultats utilisent trois niveaux de confiance — tentative, inferred et confirmed — afin que les signaux faibles ne soient pas traités comme des exploits. Le triage LLM est optionnel ; par défaut, le pipeline reste sur des heuristiques et n'envoie jamais les résultats tentative au juge LLM.
Les scanners consomment les flux capturés et peuvent également être exécutés directement en mode headless.
Rejouez et modifiez des requêtes HTTP brutes indépendamment du proxy.
Les résultats conservent les données de requête afin que les problèmes détectés puissent être validés manuellement.
Fuzzing de requêtes à l'aide de positions §marker§ de style Burp.
Les modes pris en charge incluent :
Découverte de chemins et de fichiers basée sur des listes de mots avec :
Extraction et stockage automatiques de :
Les sessions sont isolées et persistées localement.
Étendez pwnproxy avec des scanners et des hooks personnalisés.
Les plugins peuvent être :
La même interface de plugin est utilisée pour les scanners intégrés et tiers.
Un watchdog suit les défaillances des plugins et peut désactiver automatiquement les plugins qui échouent de manière répétée.
Exécutez pwnproxy directement depuis le terminal.
pwnproxy start
pwnproxy history
pwnproxy findings
pwnproxy scan url https://example.com
pwnproxy plugin list
pwnproxy session list
Utilisez une interface de terminal interactive pour :
Contrôlez la plateforme par programmation.
curl http://127.0.0.1:8000/api/v1/flows
L'API expose des fonctionnalités pour :