Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
filtron — Proxy HTTP inverse filtrant | Kitploit
Outils/GitHubGitHub/asciimoo/filtron
Outils DéfensifsSécurité WebSécurité des API
GitHubasciimoo/filtron

filtron

Proxy HTTP inverse filtrant

Voir le dépôt
17426il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Filtron

Proxy HTTP inverse pour filtrer les requêtes selon différentes règles. Peut être utilisé entre le serveur web de production et le serveur d'application pour empêcher les abus du backend de l'application.

Le but original de ce programme était de défendre searx, mais il peut être utilisé pour protéger toute application web.

Installation et configuration

root@kitploit:~
$ go install github.com/asciimoo/filtron
$ "$GOPATH/bin/filtron" --help

Règles

Une règle a deux attributs requis : name et actions

Une règle peut contenir tous les attributs suivants :

  • limit entier - Définit combien de requêtes correspondantes sont autorisées à accéder à l'application dans un intervalle de interval secondes. (Peut être omis si 0)
  • interval entier - Plage de temps en secondes pour réinitialiser les compteurs de la règle (Peut être omis si limit est 0)
  • filters liste de sélecteurs
  • aggregations liste de sélecteurs (si filters est spécifié, il ne s'active que si le filtre correspond)
  • subrules liste de règles (si filters est spécifié, il ne s'active que si le filtre correspond)
  • disabled booléen - Désactiver une règle (par défaut false)
  • stop booléen - Terminer la validation de la requête immédiatement et ignorer les règles restantes (par défaut false)

Représentation JSON d'une règle :

root@kitploit:~
{
    "name": "example rule",
    "interval": 60,
    "limit": 10,
    "filters": ["GET:q", "Header:User-Agent=^curl"],
    "actions": [
        {"name": "log",
         "params": {"destination": "stderr"}},
        {"name": "block",
         "params": {"message": "Not allowed"}}
     ]
}

Explication : Autoriser seulement 10 requêtes par minute où q est représenté comme paramètre GET et l'en-tête user-agent commence par curl. La requête est journalisée sur STDERR et bloquée avec un message d'erreur personnalisé si la limite est dépassée. Voir plus d'exemples ici.

actions

Les actions d'une règle sont activées séquentiellement si une requête dépasse la limite de la règle

Note : Seule la première action de la règle qui fournit une réponse personnalisée sera exécutée

Actions actuellement implémentées

log

Journaliser la requête

block

Renvoyer une réponse HTTP 429 au lieu de passer la requête à l'application

shell

Exécuter une commande shell. Les paramètres cmd (chaîne) et args (liste de sélecteurs) sont requis (Exemple : {"name": "shell", "params": {"cmd": "echo %v is the IP", "args": ["IP"]}})

filters

Si tous les sélecteurs sont trouvés, un compteur est incrémenté. La règle bloque la requête si le compteur atteint limit

aggregations

Compte les valeurs retournées par les sélecteurs. La règle bloque la requête si le nombre de n'importe quelle valeur atteint limit

subrules

Chaque règle peut contenir un nombre quelconque de sous-règles. S'active lorsque le filtre de la règle parente correspond.

Sélecteurs

Les différentes parties de la requête peuvent être extraites à l'aide d'expressions de sélecteur.

Les sélecteurs sont des chaînes qui peuvent correspondre à n'importe quel attribut d'une requête HTTP avec la syntaxe suivante :

root@kitploit:~
[!]RequestAttribute[:SubAttribute][=Expression]
  • ! peut inverser le sélecteur
  • RequestAttribute (obligatoire) sélectionne une partie spécifique d'une requête - valeurs possibles :
    • Valeur unique
      • IP
      • Host
      • Path
      • Method
    • Valeurs multiples
      • GET
      • POST
      • Param - c'est un alias pour GET et POST
      • Cookie
      • Header
  • SubAttribute si n'est pas une valeur unique, cela peut spécifier l'attribut interne

Exemples

IP retourne l'adresse IP du client

GET:x retourne le paramètre GET x s'il existe

!Header:Accept-Language retourne vrai s'il n'y a pas d'en-tête HTTP Accept-Language

Path=^/(x|y)$ correspond si le chemin est /x ou /y

IP=nslookup(example.com) correspond si l'adresse IP du client est l'une des adresses IP de example.com.

API

Filtron peut être configuré via son API REST qui écoute sur 127.0.0.1:4005 par défaut.

Points de terminaison API

/rules

Règles chargées au format JSON

/rules/reload

Recharger le fichier de règles spécifié au démarrage

Interface Web

Interface utilisateur construite sur l'API

webui

Bogues

Bogues ou suggestions ? Visitez le gestionnaire de tickets.

Télécharger l’outil
RequestAttribute
  • Expression valeur possible :
    • une expression régulière pour filtrer les valeurs des attributs sélectionnés.
    • nslookup(Hostname) pour filtrer les valeurs des attributs sélectionnés avec les adresses IP de Hostname. Filtron résout Hostname en ses adresses IP lorsque la règle est chargée (IPv4 et IPv6).