
OWASP Foundation Web Respository
WWWGrep est un mécanisme de « grepping » de recherche rapide qui examine les éléments HTML par type et permet d'effectuer des recherches ciblées (unique), multiples (URLs basées sur fichier) et récursives (par rapport au domaine racine ou non). Les noms et valeurs d'en-tête peuvent également être recherchés récursivement de cette manière. WWWGrep a été conçu pour aider à la fois les briseurs et les constructeurs à examiner rapidement les bases de code sous inspection. Quelques cas d'utilisation et exemples sont présentés ci-dessous.
Installation
git clone
pip3 install -r requirements.txt
python3 wwwgrep.py <arguments et paramètres>
Dépendances (pip3 install -r requirements.txt)
- Python 3.5+
- BeautifulSoup 4
- UrlLib.parse
- requests_html
- argparse
- requests
- re
- os.path
wwwgrep.py [cible/fichier] [chaîne de recherche] [params/critères/récursion de recherche etc]
Entrées de recherche
search_string Spécifier la chaîne à rechercher ou alternativement ""
pour tous les objets du type spécifié dans les paramètres de recherche
-t --target Spécifier une URL unique comme cible de la recherche
-f --file Spécifier un fichier contenant une liste d'URLs à rechercher
Récursion
-rr --recurse-root Limite la récursion d'URL au domaine fourni dans la cible
-ra --recurse-any Permet à la récursion de s'étendre au-delà du domaine de la cible
Critères de correspondance
-i --ignore-case Effectue une correspondance insensible à la casse (par défaut, respecte la casse)
-d --dedupe Permet les résultats en double par page (par défaut, dédoublonne les résultats)
-r --no-redirects Ne pas autoriser les redirections (par défaut, les redirections sont autorisées)
-b --no-base-url Omettre l'URL de la correspondance de la sortie (par défaut, inclut l'URL)
-x --regex Permet l'utilisation de correspondances RegEX (search_string est traité comme une RegEX, désactivé par défaut)
-e --separator Spécifier un séparateur de sortie (par défaut :)
-j --java-render Active le rendu JavaScript des objets et du texte de la page (désactivé par défaut)
-p --linked-js-on Active la recherche de JavaScript lié (balises script src) (désactivé par défaut)
Paramètres de requête
-ps --https-proxy Spécifier un proxy pour le protocole HTTPS au format https://<ip>:<port>
-pp --http-proxy Spécifier un proxy pour le protocole HTTP au format http://<ip>:<port>
-hu --user-agent Spécifier une chaîne à utiliser comme user-agent dans la requête
-ha --auth-header Spécifier un jeton bearer ou une autre chaîne d'authentification à utiliser dans l'en-tête de la requête
Paramètres de recherche
-s --all Rechercher tout le HTML et les scripts de la page pour les termes correspondant à la spécification de recherche
-sr --relative Rechercher les liens de la page qui correspondent à la spécification de recherche en tant qu'URLs relatives
-sa --absolute Rechercher les liens de la page qui correspondent à la spécification de recherche en tant qu'URLs absolues
-si --input-fields Rechercher les champs de saisie de la page qui correspondent à la spécification de recherche
-ss --scripts Rechercher les balises de script qui correspondent à la spécification de recherche
-st --text Rechercher le texte visible sur la page qui correspond à la spécification de recherche
-sc --comments Rechercher les commentaires sur la page qui correspondent à la spécification de recherche
-sm --meta Rechercher dans les métadonnées de la page les correspondances avec la spécification de recherche
-sf --hidden Rechercher dans les champs cachés les correspondances spécifiques avec la spécification de recherche
-sh --header-name Rechercher dans les en-têtes de réponse les correspondances spécifiques avec la spécification de recherche
-sv --header-value Rechercher les valeurs d'en-tête de réponse pour des correspondances spécifiques avec la spécification de recherche
Trouver tous les champs de saisie nommés login sur un site de manière récursive sans quitter le domaine racine, sans sensibilité à la casse dans la correspondance
wwwgrep.py -t https://www.target.com -i -si "login" -rr
Trouver tous les commentaires contenant le terme « to do » sur toutes les pages d'un site
wwwgrep.py -t https://www.target.com -i -sc "to do" -rr
Trouver tous les commentaires sur une page web spécifique
wwwgrep.py -t https://www.target.com/some_page -i -sc ""
Trouver tous les champs cachés dans une liste d'applications web contenues dans le fichier input.txt en utilisant la récursion de site
wwwgrep.py -f input.txt -sf "" -rr