
Twitter extraits vulnérables
Vulnérabilités | Langages de programmation | Exécuter un extrait de code vulnérable | Installation | Mise à jour
YesWeHack présente des extraits de code contenant plusieurs vulnérabilités différentes pour pratiquer votre analyse de code dans un environnement dockerisé sûr. Les extraits de code vulnérables conviennent à tous les niveaux de compétence.
~ Nouvel extrait de code vulnérable sur Twitter @yeswehack chaque vendredi ! 🗒
Si vous souhaitez voir quelque chose de spécial ou si vous avez simplement une idée d'extrait de code vulnérable, n'hésitez pas à créer une « New Issue » où vous expliquez votre idée, aucune idée n'est stupide.
⚠️ Attention
Assurez-vous d'exécuter ceci dans un environnement sécurisé, car le code est vulnérable et est destiné à être utilisé pour apprendre l'analyse de code ! Par défaut, tous les extraits de code vulnérables contiennent une configuration docker qui isole le code de votre système hôte et le rend sûr à exécuter (en savoir plus dans la section : « Exécuter un extrait de code vulnérable »).
Une collection de tous les extraits de code vulnérables publiés sur notre Twitter 📂
Également inclus
Dans chaque dossier d'extrait de code vulnérable (Vsnippet) se trouve un fichier docker-compose.yml. Pour démarrer un Vsnippet dans un environnement docker isolé, exécutez simplement la commande suivante :
docker compose up --build
ou
docker-compose up --build
git clone https://github.com/yeswehack/vulnerable-code-snippets.git
Pour obtenir les derniers extraits de code vulnérables, exécutez :
git pull
~ Avez-vous déjà trouvé l'œuf de Pâques ? 🐇🪺
Pour toute question, aide ou si vous avez découvert un problème avec le code, contactez-nous sur Twitter : @yeswehack 📬
| ID | Vulnérabilité | Description |
|---|
| 📜#1 | SQLi & XSS | Collision du filtre antislash |
| 📜#2 | Accès fichier inapproprié & XSS | Caractère invalide et vérification regex |
| 📜#3 | Injection Log Forging, traversée de chemin & injection de code | Filtre faible et gestion inappropriée de include() |
| 📜#4 | XSS | Filtre d'entrée utilisateur invalide |
| 📜#5 | SSRF & autorisation cassée | Entrée utilisateur fiable et IP client provenant de l'en-tête |
| 📜#6 | SSTI | Format d'entrée mixte |
| 📜#7 | SQLi | Utilisation d'une variable invalide dans une requête |
| 📜#8 | CSRF | Aucun jeton CSRF inclus |
| 📜#9 | Redirection ouverte | Gestionnaire regex invalide |
| 📜#10 | XSS DOM | Le filtre backend entre en collision avec le JavaScript côté client |
| 📜#11 | CORS | En-tête Access-Control-Allow mal configuré |
| 📜#12 | CSRF/ClickJacking | CSRF par requête GET avec processus de suppression non sécurisé / ClickJacking - X-Frame-Options défini dans une balise meta HTML |
| 📜#13 | Traversée de chemin/Téléversement de fichier non restreint | Une mauvaise protection contre la traversée de chemin et le téléversement de fichiers entraîne une injection de code |
| 📜#14 | DOS | Opérateur incorrect dans la boucle "for" |
| 📜#15 | Mécanisme faible de récupération de mot de passe oublié | Hash faible pour la récupération de mot de passe |
| 📜#16 | IDOR | Une instruction if non sécurisée conduit à un contrôle d'accès inapproprié |
| 📜#17 | Désérialisation non sécurisée | Exécute une entrée utilisateur fiable dans la fonction pickle loads() |
| 📜#18 | Traversée de chemin | Validation inappropriée du nom de fichier par l'utilisateur |
| 📜#19 | Redirection ouverte | Gestion invalide de l'entrée contrôlée par l'utilisateur "location.hash" |
| 📜#20 | Injection SQL | Utilisation invalide de la fonction replace(), le caractère n'est remplacé qu'une seule fois |
| 📜#21 | XSS DOM PostMessage | Aucune validation de l'origine, conduisant à une XSS DOM PostMessage |
| 📜#22 | XSS/Redirection ouverte | La protection par filtre ne filtre pas tous les caractères spéciaux pouvant être utilisés pour exploiter les vulnérabilités |
| 📜#23 | Dépassement de tampon | Prend l'entrée STDIN de l'utilisateur avec la fonction gets() sans vérifier la taille du tampon |
| 📜#24 | Injection SQL | Utilisation incorrecte de la fonction PHP addslashes() |
| 📜#25 | XSS - contournement CSP | Aucune validation de l'entrée utilisateur, associée à une gestion non sécurisée du nonce |
| 📜#26 | Traversée de chemin | Le filtre fourni par la fonction PHP "preg_replace()" ne filtre que les 10 premiers caractères |
| 📜#27 | Empoisonnement du cache Web | L'en-tête HTTP Referer est reflété dans le corps de la réponse en cache sans être filtré |
| 📜#28 | Vulnérabilité de logique métier | Un attaquant peut retirer des montants négatifs pour augmenter le solde global de son compte |
| 📜#29 | IDOR | Un attaquant peut accéder à des données sensibles d'autres utilisateurs en effectuant une attaque de Forced browsing |
| 📜#30 | Désérialisation non sécurisée | Utilisation d'une fonction dangereuse (exec) contrôlable par l'utilisateur, entraînant une RCE |
| 📜#31 | LFI | Aucun échappement de caractères ni vérification de filtre approprié. La fonction include() exécute tout le code PHP du fichier donné, quelle que soit l'extension du fichier, ce qui entraîne une injection de code |
| 📜#32 | Injection de format ! | Formate une chaîne contenant des valeurs fournies par le client, entraînant une injection de format |
| 📜#33 | Injection SQL (second ordre) | Toutes les requêtes SQL utilisent des requêtes préparées, sauf la dernière. Cette requête extrait de la base de données une valeur qui a été contrôlée par l'utilisateur et l'ajoute à la requête SQL, conduisant à une injection SQL (de second ordre) |
| 📜#34 | Déni de service par expression régulière (ReDoS) | Motif regex mal configuré utilisé pour filtrer une entrée contrôlée par l'utilisateur |
| 📜#35 | XSS | Entrée utilisateur fiable dans le paramètre GET |
| 📜#36 | Téléversement de fichier non restreint | Validation insuffisante de l'extension du fichier téléversé et absence de validation du contenu du fichier |
| 📜#37 | SSRF | Gestion non sécurisée de l'en-tête proxy X-Forwarded-Host et de cURL conduisant à une SSRF complète |
| 📜#38 | Injection de code | L'utilisateur peut écrire un contenu personnalisé dans un fichier sélectionné, qui est ensuite exécuté sur le système vulnérable |
| 📜#39 | LFI | L'exploitation d'une LFI permet d'exécuter l'outil pearcmd, ce qui aboutit à une exécution de code à distance |
| 📜#40 | Téléversement de fichier non restreint | L'extension php3 peut être utilisée pour exécuter du code PHP en raison de la configuration du proxy Apache. |
| 📜#41 | Injection de commande | Une utilisation invalide de escapeshellcmd conduit à une vulnérabilité d'injection de commande |
| 📜#42 | Injection de commande | Aucune validation de l'entrée utilisateur n'est effectuée, ce qui conduit à une vulnérabilité d'injection de commande |
| 📜#43 | SSTI | Utilisation inappropriée du moteur de template conduisant à une SSTI qui aboutit à une RCE |