Chemins sondés sur static.alpinux.org
Cette page liste les chemins demandés sur static.alpinux.org qui n'existent
pas et qui ont donc renvoyé une erreur 404, sur les sept derniers jours de
journaux du serveur web.
L'immense majorité de ces requêtes ne sont pas des visiteurs égarés : ce sont des
sondages automatisés. Des robots parcourent en permanence l'ensemble des serveurs
accessibles sur Internet et testent, un par un, les chemins où traînent habituellement des failles
ou des secrets : consoles d'administration (/wp-admin/, /phpmyadmin/),
fichiers de configuration oubliés (/.env, /.git/config), sauvegardes de
base de données, interfaces d'anciens équipements réseau, portes dérobées déposées par un
attaquant précédent. Chaque ligne ci-dessous est donc la trace d'une tentative
d'exploitation d'une faiblesse supposée — qui a échoué, le serveur ne contenant que des
fichiers statiques.
Nous publions cette liste par transparence, et parce qu'elle est utile : elle donne à voir ce que reçoit n'importe quel serveur exposé sur Internet, et elle indique aux autres administrateurs quels chemins sont activement recherchés en ce moment. Un chemin qui apparaît ici est un chemin qu'il vaut mieux ne pas laisser accessible sur sa propre machine.
Aucune adresse IP n'est publiée. Les journaux du serveur en contiennent, mais ce sont des données personnelles : seuls les chemins demandés, leur nombre de requêtes et le nombre de machines distinctes concernées sont rendus publics. Le détail par adresse reste accessible aux seuls administrateurs de l'association. Se connecter.
Les chemins sont regroupés par famille : tous ceux qui relèvent de la même faille, de la même erreur de configuration ou de la même campagne partagent une explication. Chaque bloc indique d'où vient le problème visé, ce que l'attaquant obtient en cas de succès, et renvoie vers les sources publiques. Cliquez sur un titre pour déplier la liste des chemins.
La pastille en début de ligne indique si le chemin renvoie toujours une 404 (● actif) ou si un fichier existe désormais à cette adresse (● résolu).
D'où vient le problèmeCe chemin n'existe nulle part et n'a jamais existé : la suite hexadécimale
au milieu du nom est tirée au hasard par l'outil de balayage lui-même. C'est une sonde
d'étalonnage. Avant de croire aux résultats de son scan, le robot demande une adresse
qui ne peut pas exister. Si le serveur répond malgré tout 200 OK
— ce que font les sites mal configurés qui renvoient leur page d'accueil au lieu d'une
vraie 404, ou les hébergeurs qui affichent une page publicitaire sur les adresses
inconnues — alors toutes les autres réponses positives sont des faux positifs, et le
robot les écarte en bloc.
Ce qui est en jeuAucun. C'est une mesure, pas une attaque. Sa présence ici signifie que notre serveur a passé le test : il a bien répondu 404, donc les 404 des autres lignes de cette page sont crédibles.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /pathscan-53b226480fa2-nope.env |
1 | 15/09/2026 19:33 | 1 |
D'où vient le problèmeCes requêtes forment ensemble une séquence de reconnaissance Joomla.
/plugins/editors/jce/jce.xml est le manifeste de JCE (Joomla Content
Editor), l'éditeur de texte le plus installé de l'écosystème : ce fichier XML annonce
en clair son numéro de version. /administrator/components/com_jce/ vérifie
la présence du composant d'administration. Les trois autres —
/media/system/js/core.js, /media/jui/js/bootstrap.min.js,
/media/vendor/jquery/js/jquery.min.js — servent à dater le cœur de Joomla :
le dossier media/jui/ n'existe que sur Joomla 3, media/vendor/
sur Joomla 4 et 5. Le robot établit donc la version de Joomla et celle de
JCE avant de décider s'il attaque. La cible est CVE-2026-48907,
divulguée en juin 2026 : un défaut de contrôle d'accès dans
index.php?option=com_jce&task=profiles.import permet, sans
aucune authentification, d'importer un fichier PHP déguisé en configuration
XML. Score CVSS 10.0, toutes les versions de 1.0.0 à 2.9.99.4 concernées, corrigé en
2.9.99.5.
Ce qui est en jeuExécution de code à distance et dépôt d'un shell web persistant. C'est la famille la plus dangereuse de cette page : les autres cherchent des secrets, celle-ci vise directement le contrôle du serveur.
Sources SonicWall — Joomla Content Editor Unauthenticated RCE (CVE-2026-48907) · YesWeHack — Unauthenticated RCE in the Joomla Content Editor extension
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /administrator/components/com_jce/ |
1 | 20/09/2026 02:04 | 1 |
| ● | /media/jui/js/bootstrap.min.js |
1 | 20/09/2026 02:04 | 1 |
| ● | /media/system/js/core.js |
1 | 20/09/2026 02:04 | 1 |
| ● | /media/vendor/jquery/js/jquery.min.js |
1 | 20/09/2026 02:04 | 1 |
| ● | /plugins/editors/jce/jce.xml |
1 | 20/09/2026 02:04 | 1 |
D'où vient le problèmeDeux attaques WordPress sans rapport l'une avec l'autre.
/wp-admin/setup-config.php est l'assistant d'installation : sur un
WordPress déposé mais pas encore configuré, il est accessible à tout le monde et ne
demande rien. Un attaquant qui le trouve avant l'administrateur termine l'installation
à sa place, en la pointant vers sa propre base de données ; il devient
alors administrateur du site et installe un greffon porte-dérobée. La campagne est
connue sous le nom de WPSetup depuis 2017, et le délai observé entre l'émission
du certificat TLS d'un site neuf et la première tentative est descendu sous la minute.
/wp-json/gravitysmtp/v1/tests/mock-data vise CVE-2026-4020 :
jusqu'à la version 2.1.4, le greffon Gravity SMTP enregistrait un point d'accès REST
dont le permission_callback renvoyait true sans condition. Un
simple GET retourne environ 365 Ko de JSON contenant le rapport système complet — et
toutes les clés d'API, secrets et jetons OAuth configurés dans les connecteurs d'envoi.
Corrigé le 17 mars 2026 en 2.1.5, puis exploité en masse à partir du 7 juin 2026, avec
4 millions de requêtes bloquées en une seule journée.
Ce qui est en jeuPrise de contrôle complète du site pour la première ; vol des identifiants d'envoi d'e-mails pour la seconde.
Sources Wordfence — The WPSetup Attack: New Campaign Targets Fresh WordPress Installs · BleepingComputer — Hackers exploit info disclosure bug in Gravity SMTP · GitHub Advisory — CVE-2026-4020
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /wp-admin/setup-config.php |
1 | 16/09/2026 03:30 | 1 |
| ● | /wp-json/gravitysmtp/v1/tests/mock-data |
1 | 15/09/2026 20:53 | 1 |
D'où vient le problèmeSpring Boot Actuator est le module de supervision des applications Java
Spring : il expose des points d'accès de santé, de métriques et de diagnostic. Par
défaut, Spring Boot 2 et 3 n'en publient que deux sur HTTP (/health et
/info) ; c'est une configuration trop permissive —
management.endpoints.web.exposure.include=* — qui les ouvre tous, dont
heapdump. Celui-ci renvoie un instantané binaire complet de la mémoire de
la machine virtuelle Java, souvent plus de 100 Mo. La faille n'est donc pas dans le
code de Spring : elle est dans une ligne de configuration copiée depuis un tutoriel.
Ce qui est en jeuIl n'y a rien à déchiffrer : un strings | grep sur le fichier
suffit à extraire les mots de passe de base de données, jetons de session et clés d'API
que l'application manipulait en mémoire. Un cas documenté chez Volkswagen a permis, à
partir d'un seul /actuator/heapdump ouvert, de récupérer des clés AWS puis
9 To de données GPS de véhicules.
Sources Wiz — Exploring Spring Boot Actuator Misconfigurations · HackTricks — Spring Actuators
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /actuator/heapdump |
1 | 16/09/2026 03:30 | 1 |
D'où vient le problèmeLe chemin /ipfs/<CID> est la forme normalisée d'une
passerelle IPFS, qui traduit le réseau pair-à-pair InterPlanetary File System
en HTTP classique. Le robot teste si notre serveur en héberge une, ouverte. Ce n'est
pas une recherche de faille mais une recherche de ressource à détourner :
les passerelles ouvertes servent à diffuser des kits d'hameçonnage et des charges
malveillantes sous un nom de domaine respectable, le contenu étant par ailleurs
quasiment impossible à faire retirer puisqu'il faudrait le purger de chaque nœud du
réseau.
Ce qui est en jeuAucun pour nos données. Le risque est de devenir l'hébergeur involontaire — et le domaine signalé, puis blacklisté — d'un contenu frauduleux.
Sources Cisco Talos — Cyber Criminal Adoption of IPFS for Phishing, Malware Campaigns · Netcraft — Disrupting IPFS phishing attacks
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /ipfs/bafkreicyqcbhpicbos7ev4mrxofwqx6hvvge7pahpta6xuspr44crai5by |
1 | 16/09/2026 00:17 | 1 |
D'où vient le problèmeQuand on déploie un site par git clone directement dans le
dossier web, le sous-dossier .git/ part avec. Il ne contient pas seulement
la version en ligne : il contient tout l'historique. Les trois fichiers
demandés ici sont exactement ceux dont un outil comme git-dumper a besoin
pour amorcer la reconstruction — .git/config (adresse du dépôt distant,
parfois avec des identifiants dans l'URL), .git/HEAD (branche courante) et
.git/index (liste des fichiers suivis). /.svn/wc.db est
l'équivalent Subversion depuis la version 1.7 : une base SQLite qui décrit toute la
copie de travail. Un balayage d'Internet a recensé près de 5 millions d'adresses
exposant des métadonnées .git, dont environ 5 % laissent fuir un
.git/config contenant des identifiants encore valides.
Ce qui est en jeuLe code source complet, et surtout son historique. Un mot de passe supprimé dans un commit ultérieur reste présent dans l'objet Git antérieur : reconstruire le dépôt le ressuscite. C'est la raison pour laquelle « j'ai retiré la clé du code » ne suffit jamais — il faut la révoquer.
Sources Safeguard — git-dumper: Exposed .git Directory Attack & Defense · Sorcery — Exposed .git Folder and How To Remediate it
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /.git/config |
5 | 20/09/2026 09:39 | 4 |
| ● | /.git/HEAD |
3 | 16/09/2026 14:31 | 3 |
| ● | /.git/index |
1 | 15/09/2026 19:33 | 1 |
| ● | /.svn/wc.db |
1 | 16/09/2026 03:30 | 1 |
D'où vient le problèmeQuand on crée un compte de service Google Cloud et qu'on télécharge sa clé,
on obtient un fichier JSON contenant une clé privée RSA. Google le nomme
<projet>-<empreinte>.json, mais les développeurs le renomment
presque toujours de la même poignée de façons : service-account.json,
credentials.json, key.json, sa.json. D'où cette
liste courte et très ciblée, sans énumération de dossiers.
/.config/gcloud/application_default_credentials.json est l'emplacement où
l'outil en ligne de commande gcloud range les identifiants par défaut dans
le répertoire personnel : le robot teste le cas où ce répertoire est lui-même servi par
le web. firebase-adminsdk.json est la clé du SDK Admin Firebase.
Ce qui est en jeuUne clé de compte de service ne s'authentifie auprès de rien : elle est l'authentification. Qui la détient devient ce compte de service, avec ses droits, sans second facteur et sans expiration — jusqu'à révocation manuelle. La clé Admin Firebase, elle, court-circuite l'intégralité des règles de sécurité de la base.
Sources Google Cloud — Best practices for managing service account keys · Red Canary — The dark cloud around GCP service accounts
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /.config/gcloud/application_default_credentials.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /application_default_credentials.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /credentials.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /firebase-adminsdk.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /firebase-key.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /gcp-credentials.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /gcp-key.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /gcp-sa.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /google-credentials.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /google-key.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /key.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /keyfile.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /sa.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /service-account.json |
1 | 20/09/2026 09:39 | 1 |
D'où vient le problèmeDes fichiers qui contiennent directement un moyen d'accès, chacun avec sa
propre histoire. /.ssh/id_rsa et /.ssh/id_ed25519 sont les
clés privées SSH d'un compte : les demander sous la racine web revient à parier que le
répertoire personnel est servi par le serveur. /server.key est la clé
privée d'un certificat TLS, souvent laissée à côté du .crt lors d'une
installation manuelle. /.npmrc contient le jeton d'authentification npm,
qui permet de publier des paquets sous l'identité de son propriétaire — porte d'entrée
classique vers une attaque de chaîne d'approvisionnement.
/.vscode/sftp.json est le fichier de configuration de l'extension SFTP de
Visual Studio Code, qui stocke hôte, utilisateur et mot de passe en clair ;
il est activement recherché par des scanners publics comme LeakIX.
/_vti_pvt/service.pwd est le vestige des extensions FrontPage de Microsoft,
abandonnées depuis 2006 : le fichier contient des couples utilisateur/mot de passe
chiffrés, et Metasploit conserve un module dédié à son extraction — preuve que les
robots n'abandonnent jamais une cible, même vingt ans après.
/.bash_history enregistre les commandes tapées, mots de passe passés en
argument compris.
Ce qui est en jeuAccès direct, sans exploitation à construire : la clé ou le mot de passe se réutilisent tels quels, depuis n'importe où.
Sources SANS ISC — Hackers Love This VSCode Extension · Rapid7 — FrontPage .pwd File Credential Dump
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /.bash_history |
1 | 16/09/2026 03:30 | 1 |
| ● | /.npmrc |
1 | 16/09/2026 03:30 | 1 |
| ● | /.ssh/id_ed25519 |
1 | 16/09/2026 03:30 | 1 |
| ● | /.ssh/id_rsa |
1 | 16/09/2026 03:30 | 1 |
| ● | /.vscode/sftp.json |
1 | 16/09/2026 03:30 | 1 |
| ● | /_vti_pvt/service.pwd |
1 | 16/09/2026 03:30 | 1 |
| ● | /server.key |
1 | 16/09/2026 03:30 | 1 |
D'où vient le problèmeUne sauvegarde faite à la main, au mauvais endroit. Le scénario est presque
toujours identique : avant une migration ou une mise à jour, on lance un
mysqldump > backup.sql depuis le dossier courant — qui se trouve être la
racine web — et on ne nettoie pas après. Les noms testés ici sont les plus évidents
(backup.sql, dump.sql, database.sql,
backup.zip), sans la moindre tentative de deviner : si le fichier existe
sous un nom original, le robot passera à côté. C'est une attaque à très faible coût,
rentabilisée par le seul volume.
Ce qui est en jeuLe plus élevé de tous. Un dump de base, c'est l'intégralité des comptes utilisateurs avec leurs empreintes de mots de passe, les données personnelles, les commandes, les messages. Aucune compétence technique n'est requise : il suffit de télécharger.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /backup.sql |
1 | 16/09/2026 03:30 | 1 |
| ● | /backup.tar.gz |
1 | 16/09/2026 03:30 | 1 |
| ● | /backup.zip |
1 | 16/09/2026 03:30 | 1 |
| ● | /database.sql |
1 | 16/09/2026 03:30 | 1 |
| ● | /database_backup.sql |
1 | 16/09/2026 03:30 | 1 |
| ● | /dump.sql |
1 | 16/09/2026 03:30 | 1 |
D'où vient le problèmephpinfo() est une fonction PHP d'une seule ligne qui affiche
toute la configuration de l'interpréteur. On l'écrit dans un fichier jetable pour
vérifier qu'une extension est bien chargée — et on oublie de le supprimer. D'où
l'énumération des noms de fichiers jetables typiques : info.php,
test.php, i.php, p.php, debug.php,
avec leurs déclinaisons dans les dossiers de travail (/tmp/,
/old/, /dev/) et leurs copies de sauvegarde
(phpinfo.php.bak, phpinfo.php~). Trois chemins sortent du
lot : /_profiler/phpinfo et /_environment appartiennent à la
barre de débogage de Symfony, qui ne doit jamais rester active en production — elle
expose routes, cookies, fichiers de configuration et identifiants ;
/server-status est le module mod_status d'Apache, qui liste
les requêtes en cours.
Ce qui est en jeuRien n'est directement exploitable, mais tout devient plus facile ensuite. La page révèle la version exacte de PHP et du système (donc les failles applicables), les chemins absolus sur le disque (utiles pour une inclusion de fichier), les modules chargés (pistes de désérialisation ou de SSRF), et surtout le contenu des variables d'environnement — c'est-à-dire, très souvent, les identifiants de la base de données.
Sources Acunetix — Symfony debug mode enabled · Synacktiv — Looting Symfony with EOS
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /phpinfo.php |
2 | 20/09/2026 09:39 | 2 |
| ● | /_environment |
1 | 20/09/2026 09:39 | 1 |
| ● | /_phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /_profiler/phpinfo |
1 | 20/09/2026 09:39 | 1 |
| ● | /admin/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /administrator/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /beta/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /core/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /cpanel/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /debug.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /dev/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /docs/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /hosting/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /htdocs/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /i.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /includes/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /info |
1 | 20/09/2026 09:39 | 1 |
| ● | /info.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /info.php.bak |
1 | 20/09/2026 09:39 | 1 |
| ● | /mail/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /old/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /old_phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /p.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /php-info.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /php.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /phpinfo |
1 | 20/09/2026 09:39 | 1 |
| ● | /phpinfo.php.bak |
1 | 20/09/2026 09:39 | 1 |
| ● | /phpinfo.php.old |
1 | 20/09/2026 09:39 | 1 |
| ● | /phpinfo.php.save |
1 | 20/09/2026 09:39 | 1 |
| ● | /phpinfo.php~ |
1 | 20/09/2026 09:39 | 1 |
| ● | /phpversion.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /pi.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /pinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /preview/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /public/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /public_html/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /qa/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /server-info.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /server-status.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /site/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /smtp/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /staging/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /test.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /test/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /tmp/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /uat/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /webmail/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /webroot/index.php/_environment |
1 | 20/09/2026 09:39 | 1 |
| ● | /wp-admin/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
| ● | /www/phpinfo.php |
1 | 20/09/2026 09:39 | 1 |
D'où vient le problèmeLe même fichier .env que la famille précédente, mais une cible
précise : les identifiants de service d'envoi d'e-mails. Les noms de dossiers demandés
— sendgrid, mailgun, ses, postmark,
brevo, mandrill, mailjet,
sparkpost — sont ceux des principales plateformes d'e-mailing
transactionnel. C'est la signature d'Androxgh0st, un botnet écrit en
Python qui fait l'objet d'une alerte conjointe FBI/CISA (AA24-016A, janvier 2024). Il
moissonne les .env exposés à la recherche de clés AWS, Office 365,
SendGrid et Twilio, puis interroge l'API Amazon SES pour connaître le quota d'envoi du
compte volé — afin de calibrer ses campagnes de spam à venir.
Ce qui est en jeuUn compte d'envoi volé sert à expédier du spam et de l'hameçonnage depuis une réputation d'expéditeur légitime : la vôtre. La facture, et le blacklistage du domaine qui suit, sont pour le propriétaire.
Sources CISA/FBI — Advisory AA24-016A (Androxgh0st) · BleepingComputer — FBI: Androxgh0st malware botnet steals AWS, Microsoft credentials
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /brevo/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /bulk/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /campaign/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /email/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mail/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mailer/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mailgun/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mailing/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mailjet/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mandrill/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /newsletter/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /notifications/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /notify/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /postmark/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /sender/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /sendgrid/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /ses/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /smtp/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /sparkpost/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /transactional/.env |
1 | 20/09/2026 09:39 | 1 |
D'où vient le problèmeToujours .env, cette fois sous des dossiers d'infrastructure
(aws, azure, gcp, terraform,
ansible, k8s) et de chaîne d'intégration continue
(jenkins, gitlab, github, circleci,
travis). Le raisonnement du robot : si un .env traîne à cet
endroit, il ne contient probablement pas les secrets d'une application mais ceux de la
plateforme qui l'héberge — clés d'accès IAM, jetons de déploiement, identifiants de
registre d'images.
Ce qui est en jeuUn secret d'infrastructure ne compromet pas un site : il compromet l'ensemble du compte cloud. Création de machines pour du minage de cryptomonnaie, accès aux sauvegardes, pivot vers tous les autres projets du même compte.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /actions/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /ansible/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /aws/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /azure/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /buildkite/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /cd/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /ci/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /circleci/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /cloud/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /docker/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /gcp/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /github/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /gitlab/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /infrastructure/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /jenkins/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /k8s/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /kubernetes/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /terraform/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /travis/.env |
1 | 20/09/2026 09:39 | 1 |
D'où vient le problèmeVariantes de sauvegarde et d'éditeur du même fichier. Deux origines
distinctes se superposent. D'abord l'habitude de copier avant de modifier
(cp .env .env.bak) : la copie, elle, n'est couverte par aucune règle de
blocage écrite pour le nom exact .env. Ensuite les artefacts d'éditeur —
.env~ est la sauvegarde automatique d'Emacs ou de vi, .env.swp
le fichier d'échange que Vim laisse derrière lui quand une session SSH est coupée.
Ceux-là sont particulièrement recherchés parce qu'ils survivent aux nettoyages : on ne
pense pas à les supprimer, on ignore souvent leur existence. Le changement d'extension
(.env.txt, .env.json) vise pour sa part les serveurs qui
bloquent le nom exact mais servent volontiers tout autre fichier. Cas à part :
.env.example, .env.sample et .env.dist sont des
gabarits normalement versionnés sans valeurs réelles — ils ne livrent que la
liste des variables attendues, ce qui reste une carte utile pour la suite.
Ce qui est en jeuIdentique au .env d'origine, avec en prime le contenu d'une
version antérieure : des secrets qu'on croyait avoir remplacés et qu'on n'a donc jamais
révoqués.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /.env.backup |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.bak |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.old |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.save |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.swp |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.txt |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.backup1 |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.backup2 |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.dist |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.example |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.json |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.sample |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.yaml |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.yml |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env1 |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env2 |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env_copy |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env~ |
1 | 20/09/2026 09:39 | 1 |
D'où vient le problèmeLe fichier .env vient de la bibliothèque
phpdotenv, popularisée par Laravel puis reprise par Symfony, Node.js,
Django et à peu près tout le développement web moderne. Il stocke, en texte
clair, la configuration propre à chaque machine : mot de passe de base de
données, clé de chiffrement de l'application (APP_KEY), jetons d'API,
identifiants SMTP. Il n'est pas censé être servi par le serveur web — dans Laravel, la
racine publique doit être le sous-dossier public/, et .env
reste un niveau au-dessus. La faille n'est donc pas un bug logiciel mais une
erreur de déploiement : un DocumentRoot qui pointe sur la racine du
projet au lieu de public/, ou un serveur qui ne bloque pas les fichiers
commençant par un point. Les dizaines de variantes ci-dessous
(/app/.env, /laravel/.env, /v2/.env,
/prod/.env, /current/.env…) ne sont qu'une énumération : le
robot ignore comment le site est rangé, alors il essaie systématiquement toutes les
arborescences de déploiement courantes, framework par framework.
Ce qui est en jeuLe contenu d'un .env donne généralement un accès direct à la base
de données. Et l'APP_KEY de Laravel permet de forger des cookies de
session valides — donc de se connecter en tant que n'importe quel utilisateur, y
compris administrateur, sans connaître aucun mot de passe.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /.env |
7 | 20/09/2026 09:39 | 5 |
| ● | /.env.production |
3 | 20/09/2026 09:39 | 3 |
| ● | /.env.dev |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.local |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.staging |
2 | 20/09/2026 09:39 | 2 |
| ● | /api/.env |
2 | 20/09/2026 09:39 | 2 |
| ● | /.env.ci |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.development |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.docker |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.live |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.preprod |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.prod |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.remote |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.stage |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.test |
1 | 20/09/2026 09:39 | 1 |
| ● | /.env.uat |
1 | 20/09/2026 09:39 | 1 |
| ● | /.git/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /admin-panel/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /admin/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /administrator/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /angular/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /api/dev/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /api/staging/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /api/v1/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /api/v2/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /api/v3/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /app/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /application/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /apps/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /assets/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /backend/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /backup/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /backups/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /beta/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /bin/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /bootstrap/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /build/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /cache/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /cakephp/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /client/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /cms/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /codeigniter/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /config/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /config/app/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /control-panel/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /core/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /core/app/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /crm/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /cron/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /cronlab/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /current/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /dashboard/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /database/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /deploy/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /dev/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /development/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /dist/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /drupal/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /elasticsearch/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /en/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /erp/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /exapi/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /express/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /frontend/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /gateway/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /graphql/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /htdocs/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /html/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /internal/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /job/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /joomla/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /kafka/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /lab/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /laravel/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /laravel5/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /lib/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /live/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /local/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /logs/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /magento/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /microservice/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mongodb/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /mysql/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /nest/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /next/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /node/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /nuxt/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /old/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /opt/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /panel/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /portal/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /postgres/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /prestashop/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /preview/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /private/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /prod/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /production/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /project/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /psnlink/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /public/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /public_html/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /qa/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /queue/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /rabbitmq/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /react/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /redis/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /release/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /releases/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /resources/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /rest/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /saas/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /sbin/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /scripts/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /server/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /service/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /shared/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /shop/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /shopify/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /site/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /sitemaps/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /src/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /stage/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /staging/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /storage/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /store/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /svelte/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /symfony/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /temp/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /test/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /tmp/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /tools/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /uat/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /uploads/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /user-panel/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /v1/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /v2/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /v3/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /var/www/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /var/www/html/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /vendor/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /vite/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /vue/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /web/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /wordpress/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /worker/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /wp/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /www/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /yii/.env |
1 | 20/09/2026 09:39 | 1 |
| ● | /zend/.env |
1 | 20/09/2026 09:39 | 1 |
D'où vient le problèmeLes fichiers de configuration des applications, visés pour la même raison que
les .env mais sous leurs noms historiques.
wp-config.php contient les identifiants de base de données de WordPress
ainsi que ses huit clés de salage ; config.php est la convention
équivalente dans la plupart des CMS PHP. docker-compose.yml déclare les
variables d'environnement des conteneurs, mots de passe compris, et révèle au passage
toute la topologie des services internes. user_secrets.yml est le coffre
de Ruby on Rails. /storage/logs/laravel.log est le journal d'erreurs de
Laravel : quand le mode debug est resté actif, chaque exception y est consignée avec la
requête SQL complète et ses paramètres. Ces fichiers ne sont normalement jamais servis
tels quels — un .php est exécuté, pas affiché — mais il suffit d'une erreur
de configuration désactivant l'interprétation PHP pour que le serveur en livre le texte
brut.
Ce qui est en jeuIdentifiants de base de données, et pour WordPress les clés de salage, qui permettent de forger des cookies d'authentification valides.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /config.json |
1 | 17/09/2026 00:52 | 1 |
| ● | /config.php |
1 | 16/09/2026 03:30 | 1 |
| ● | /config.xml |
1 | 16/09/2026 03:30 | 1 |
| ● | /docker-compose.yml |
1 | 16/09/2026 03:30 | 1 |
| ● | /secrets.json |
1 | 16/09/2026 03:30 | 1 |
| ● | /storage/logs/laravel.log |
1 | 16/09/2026 03:30 | 1 |
| ● | /user_secrets.yml |
1 | 16/09/2026 03:30 | 1 |
| ● | /wp-config.php |
1 | 16/09/2026 03:30 | 1 |
D'où vient le problèmeCes 404 ne sont pas des attaques : elles viennent de chez nous, ou de
visiteurs légitimes. /logo et /wiki sont de vrais
dossiers du CDN, demandés sans barre oblique finale — notre serveur ne sert que des
fichiers, jamais d'index de dossier, d'où l'erreur. /auth/favicon.ico et
/resources/…/login/alpid/img/favicon.ico sont des chemins de thème
Keycloak : le navigateur les réclame pendant le passage par AlpID, notre fournisseur
d'identité. /sitemap.txt est demandé par des robots d'indexation qui
testent la variante texte du plan de site — nous publions
sitemap.xml. S'y ajoutent nos propres routes
(/errors/…, /browse/…) atteintes avec la mauvaise méthode
HTTP : un GET sur une route qui n'accepte que POST ne
correspond à aucune règle et finit en 404 — y compris quand c'est nous qui testons le
serveur.
Ce qui est en jeuAucun. En revanche /logo et /wiki méritent une
correction de notre côté : une redirection vers /logo/ et
/wiki/ supprimerait ces erreurs, et les chemins de favicon signalent une
ressource manquante dans le thème de connexion.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /errors/ban |
2 | 20/09/2026 12:41 | 1 |
| ● | /logo |
2 | 18/09/2026 15:56 | 2 |
| ● | /resources/tzymc/login/alpid/img/favicon.ico |
2 | 17/09/2026 00:52 | 1 |
| ● | /auth/favicon.ico |
1 | 20/09/2026 01:31 | 1 |
| ● | /index.php |
1 | 15/09/2026 20:53 | 1 |
| ● | /sitemap.txt |
1 | 15/09/2026 00:18 | 1 |
| ● | /wiki |
1 | 18/09/2026 15:58 | 1 |
D'où vient le problèmeChemins que je n'ai pas pu rattacher avec certitude à un logiciel connu ou à
une faille publiée. Plutôt que de leur inventer une explication plausible, ils sont
laissés ici. /api/session/properties, par exemple, a la forme d'une API de
gestion de session, mais aucune source publique consultée ne permet de dire quel
produit est visé, et aucun autre chemin du même balayage ne vient compléter la
signature.
Ce qui est en jeuIndéterminé. Si des chemins voisins apparaissent dans les prochains jours, ils donneront la signature complète du balayage et permettront de classer la famille.
| Chemin | Requêtes | Dernière vue | Machines | |
|---|---|---|---|---|
| ● | /api/session/properties |
2 | 18/09/2026 09:31 | 1 |