Weekly Shaarli

All links of one week in a single page.

Week 25 (June 20, 2022)

A list of search engines useful during Penetration testing, vulnerability assessments, red team operations, bug bounty and more
thumbnail

Une awesome liste de moteurs de recherche et autres ressources liées à la sécurité informatique et la recherche d'informations sur une cible.

Mon best-of:

  • Virus Total excellent antivirus en ligne
  • Have I Been Pwned savoir si votre adresse e-mail a été compromise et surtout par qui
  • Spy On Web identifier des domaines liés entre eux, notamment via les trackers (l'arroseur arrosé 😉)
  • That's Them annuaire inversé pour téléphones et e-mails
  • Exploit DB chercher un exploit pour une version spécifique d'un logiciel
  • Shodan basé de données de TOUS les services exposés sur internet
Inside JavaScript Engines, Part 1: Parsing
thumbnail

Un article très complet sur le fonctionnement des lexer / parser de v8 (Chrome, Node.js) et SpiderMonkey (Firefox)

On comprend notamment que v8 se "plie" aux conventions des outils de minification du code ou encore que le point virgule est bien nécessaire ;-)

google/zx: A tool for writing better scripts
thumbnail

Un mix entre bash et javascript pour écrire des scripts bash avec plus d'aisance. (Car oui écrire des scripts un peu compliqué en bash est une chienlit..)

#!/usr/bin/env zx

await $`cat package.json | grep name`

let branch = await $`git branch --show-current`
await $`dep deploy --branch=${branch}`
Decathlon fait pirater son site e-commerce par des hackers éthiques et découvre 27 vulnérabilités
thumbnail

Decathlon à organisé un live bug bounty, cela s'apparente à une compétition type hackaton mais dont le but est de trouver des failles de sécurité.

A priori cela a porté ses fruits car entre autre une RCE (Remote Code Execution, une faille parmi les plus critique) et une injection SQL ont été découvertes.

La cible était la plate-forme e-commerce réalisée avec Prestashop.

Random notes around service workers development and testing
thumbnail

Un meta article qui résume pleins de choses sur les Service Workers des navigateurs.

AbortController is your friend
thumbnail

Un article très complet sur l'utilisation de AbortController pour annuler des requêtes réseau en cours notamment.

Je ne savais pas qu'il était aussi possible d'arrêter un listener de cette manière ! C'est pratique car il n'y a pas besoin de garder une référence sur la callback.

const controller = new AbortController();
const { signal } = controller;

window.addEventListener('resize', () => doSomething(), { signal });

// later
controller.abort();
A match made in heaven: Tinder and Statistics

Analyse détaillée d'informations extraites de Tinder via des bots connectés sur leur API.

Les explications des outils d'analyse (Python, Panda, Numpy, etc) et les snippets sont bien expliqués 👍

AWS announces Amazon CodeWhisperer
thumbnail

Amazon annonce une alternative à Copilot (Github/Microsoft).

Il y a fort à parier que leur IA a aussi été entraînée avec le code open source sur Github.

A noter que Github Copilot est maintenant payant (10$/mois)

A poor man Web Workers

Les Service Workers ne vont pas magiquement améliorer les performances d'une application notamment car l'envoi de données entre les processus (postMessage) est relativement lente comme tous les autres mécanismes d'Inter Process Communication (IPC)

En général pour faire des calculs intensifs il est préférable de le faire durant le temps restant après que le navigateur ait terminé le rendu d'une frame de la page Web avec requestIdleCallback

When You Should Prefer Map Over Object In JavaScript

Très bon explication sur les différences entre les Map et les POJO en Javascript.

En substance:

  • utilisez les POJO lorsque le nombre de clé est connu d'avance et en tant que Data Transfer Object (DTO)
  • utilisez les Map pour tout ce qui s'apparente à un cache RAM et nécessite des insertions/deletions arbitraires

Lorsqu'elle sont bien utilisées, les Map auront une meilleure performance, utilisent moins de RAM et offre une meilleure API plus complète POJO (e.g. Map.clear) au prix d'une perte en DX (e.g. initialisation, spread operator)

Microvium is a very small JS runtime

Un runtime Javascript (comme v8 qui est utilisé dans Chrome et Node.js) qui utilise seulement 8.5 Ko d'espace disque et minimum 34 octets de RAM!

Le but est d'utiliser du Javascript dans des micro contrôleurs qui pour la plupart ont 64 Ko de disque et 2 Ko de RAM.

L'auteur défend son projet avec notamment l'argument du single thread de javascript qui consomme moins de ressources que le multi thread.

On peut aussi ajouter qu'il est nettement plus simple et maintenable d'écrire du JS à mémoire managé que du C.