Je ne sais pas pour vous, mais ça me les broute un peu qu’on ne puisse pratiquement plus déployer d’applis serveur sans passer par #Docker.
Pour #TinyTinyRss, j’ai trouvé une procédure directe (et fastoche) à partir du git, mais pour #Stylo, que dalle…
Un développeur de Red Hat s'est attaqué au problème , en essayant de coder un équivalent à 'scp', mais qui utiliserait le protocole SFTP.
https://lists.mindrot.org/pipermail/openssh-unix-dev/2020-June/038594.html
Utiliser 'scp' pour le transfert de fichier pose un gros problème : il est impossible de proprement limiter les droits du client, notamment de l'empêcher d'exécuter des commandes à distance (CVE-2020-15778). Ce problème ne peut pas être réglé sans changer de protocole.
Par exemple:
scp foo remote:'`touch spam`bar'
Voir aussi CVE-2019-6111 (réglé avec OpenSSH 8.0), qui permet au serveur d'envoyer au client un fichier différent que celui qui a été envoyé.
Plus d'infos: https://lwn.net/SubscriberLink/835962/ae41b27bc20699ad/
Cela permet de garder de grosses quantités de données de manière discrète, parce qu'elles n'apparaitront pas dans la consommation de ressources du processus.
L'administrateur peut toujours détecter ça avec "lsof", et supprimer les données en tuant le processus, mais ça permet quand même de se cacher un peu.
On peut aussi combiner ça avec fallocate() pour remplir un disque de manière "invisible" (disque plein, 0 fichiers).
Petite astuce pour cacher des données sur un serveur, et "empêcher" l'administrateur de les supprimer/consulter :
- open() : ouvrir le fichier
- write() : écrire des données
- remove() : supprimer le fichier
- attendre, sans fermer le fichier
Puis au moment ou l'on veut lire le fichier :
- seek(0) : revenir au début du fichier
- read() : lire les données
Les données seront gardées uniquement dans le cache, pas sur le disque, et ne seront pas visibles.
Le code source de GitHub publié sur leur dépôt DMCA... C'est beau :D
> felt cute, might put gh source code on dmca repo now idk
Salut la communauté mastodon ! on cherche à faire de la comm pour faire découvrir l'outil de gestion de projet collaboratif et chiffré system-d.org. On ajoute jour après jours des super fonctionnalités et on aimerait en faire profiter le plus grand nombre!
Vous auriez des pistes, des contacts, des idées de médias/ sites web qu'on pourrais contacter pour ça ?(francophones, anglophones, germanophones, italiens, espagnols puisque grâce aux traducteurs la plateforme est bien internationalisée )
Pour clang:
int i = 0; int f(void){ switch(i){ g(i*({case 0:; 1;})); }; }
C'est vraiment très très beau le C...
Pour Python:
import ctypes; ctypes.string_at(42)
Mais c'est vraiment de la triche...
Pour bash:
echo ". x" > x; . x
Pas de points bonus, c'est juste un dépassement de la pile.
Bon allez, un petit jeu à plusieurs : une personne propose un programme, et il faut chercher l'entrée la plus courte qui permette de faire segfault le programme en question.
Je commence avec:
- bash (4.4)
- clang (7.1)
- python (3.7)
Points de bonus si le segfault n'est pas provoqué par un dépassement de la pile.
En modifiant ces octets, le graphe des entrées de répertoire du système de fichiers devient cyclique : Linux détecte ces boucles (comme il le fait pour les liens symboliques), Windows se vautre dessus et alloue toute la RAM depuis du code noyau.
Recette du jour : sur un système de fichiers #FAT32, si tu crée un répertoire vide à la racine, puis que tu modifies la partoche en remplaçant `0x2e 0x2e` par `0x2d 0x2d`, si tu le monte sur un #Windows, il freeze et BSOD au bout d'une demi-heure (+/- selon la quantité de la RAM de la machine), en criant juste avant de mourir qu'il n'y a plus beaucoup place sur le système de fichiers, parce qu'il y a 365444GB utilisés sur 1GB.
/dev/null