Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gha-lab-fb6df3d456 — # Laboratoire de recherche en sécurité autorisé reproduisant CVE-2025-46820 (GHSA-cwj7-6v67-2cm4) : GITHUB_TOKEN persisté dans des artefacts CI téléchargeables publiquement dans phpgt/Dom. Instantané de phpgt/Dom @ b73d7e8. | Kitploit
Outils/GitHubGitHub/pvharmo2/gha-lab-fb6df3d456
Analyse des VulnérabilitésSécurité CloudSécurité de la Chaîne LogistiqueApprentissage et ÉducationRessources Organisées
GitHubpvharmo2/gha-lab-fb6df3d456

gha-lab-fb6df3d456

# Laboratoire de recherche en sécurité autorisé reproduisant CVE-2025-46820 (GHSA-cwj7-6v67-2cm4) : GITHUB_TOKEN persisté dans des artefacts CI téléchargeables publiquement dans phpgt/Dom. Instantané de phpgt/Dom @ b73d7e8.

Voir le dépôt
il y a 22h 11mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Artéfact de recherche automatisé — pas le projet en amont.

Ce dépôt est un laboratoire jetable construit par un harnais automatisé pour un mémoire de maîtrise à l'Université Laval sur la reproduction de vulnérabilités publiées dans les workflows GitHub Actions. Il s'agit d'un instantané verbatim de phpgt/Dom au commit b73d7e8b54963796132df99902c3224016511bb9 (2025-03-21), redistribué sous la licence propre de ce projet, dont le fichier est inclus inchangé dans cet instantané.

Le projet en amont n'est pas impliqué, n'est jamais ciblé, et la vulnérabilité étudiée ici est déjà publique. Chaque secret et variable dans ce dépôt est une valeur factice générée aléatoirement — aucun identifiant réel n'est présent. Les références d'actions et les images d'exécuteur sont épinglées à ce qu'elles résolvaient le 2025-03-21 ; voir pinning.md dans la sortie du harnais pour chaque modification apportée à l'instantané.

Questions ou objections : [email protected]


L'API DOM moderne pour les projets PHP 7

API DOM moderne.

Construit sur la base du DOMDocument natif de PHP, ce projet donne accès aux API DOM modernes, comme on s'y attendrait en travaillant avec du code côté client dans le navigateur.

Effectuer des manipulations DOM dans votre code côté serveur améliore la façon dont les pages dynamiques peuvent être construites. L'utilisation d'une interface orientée objet standardisée signifie que la page peut être pré-traitée, au bénéfice des navigateurs, des serveurs web et des réseaux de diffusion de contenu.


Build status
Code quality
Code coverage
Current version
Documentation PHP.Gt/Dom

Exemple d'utilisation : Bonjour, vous !

Remarque importante : l'exemple présenté ici est à titre illustratif, mais utiliser le DOM pour définir directement des données dans les valeurs des éléments couple étroitement la logique à la vue, ce qui est considéré comme une mauvaise pratique. Veuillez consulter la bibliothèque DomTemplate pour une solution plus robuste de liaison de données au DOM.

Considérons une page avec un formulaire, contenant un élément de saisie pour entrer votre nom. Lorsque le formulaire est soumis, la page doit vous saluer par votre nom.

Ceci est un exemple simple de la façon dont les fichiers HTML sources peuvent être traités comme des modèles. Cela peut facilement être appliqué à des pages modèles plus avancées pour fournir un contenu dynamique, sans nécessiter de techniques non standard telles que {{accolades}} pour les espaces réservés, ou la construction HTML sujette aux erreurs echo '<div class='easy-mistake'>' . $content['opa'] . '</div>' depuis PHP.

HTML source (name.html)

root@kitploit:~
<!doctype html>
<h1>
	Hello, <span class="name-output">you</span> !
</h1>

<form>
	<input name="name" placeholder="Your name, please" required />
	<button>Submit</button>
</form>

PHP utilisé pour injecter votre nom (index.php)

root@kitploit:~
<?php
use Gt\Dom\HTMLDocument;
use Gt\Dom\HTMLElement\HTMLSpanElement;
require "vendor/autoload.php";

$html = file_get_contents("name.html");
$document = new HTMLDocument($html);

if(isset($_GET["name"])) {
	$span = $document->querySelector(".name-output");
	$span->innerText = $_GET["name"];
}

echo $document;

Fonctionnalités en un coup d'œil

  • Compatible avec le DOM Living Standard du W3C :
    • Le type Element représente toutes les spécifications HTMLElement, telles que HTMLAnchorElement (<a>), HTMLButtonElement (<button>), HTMLInputElement (<input>), HTMLTableSectionElement (<thead>, <tbody>, <tfoot>), etc. Le type particulier peut être détecté avec Element::getElementType(), qui renvoie l'une des valeurs de l'énumération ElementType.
    • Extensions DOMException pour intercepter différents types d'exceptions, telles que EnumeratedValueException, HierarchyRequestError, IndexSizeException, etc.
    • Fonctionnalités côté client simulées, y compris les classes pour FileList, StyleSheet, VideoTrackList, WindowProxy, etc.
  • Fonctionnalités DOM niveau 4+ :
    • Référencer les éléments à l'aide de sélecteurs CSS via Element::querySelector() et (Element::querySelectorAll())
    • Ajouter/supprimer/alterner les classes des éléments à l'aide de ClassList
    • Parcourir les nœuds uniquement Element avec Element::previousElementSibling, Element::nextElementSibling, Element::children et Element::lastElementChild et firstElementChild, etc.
    • Insérer et supprimer des nœuds enfants avec , , ,
  • Propriétés standard sur le HTMLDocument :
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

Limitations connues / conformité à la spécification W3C

Ce dépôt vise à être aussi précis que possible par rapport à la spécification DOM à https://dom.spec.whatwg.org/ - à partir de la v4.0.0, toutes les fonctionnalités sont implémentées avec les déviations mineures mais inévitables suivantes par rapport à la norme :

  • La propriété tagName des éléments est en majuscules.
  • Pour vérifier le type HTMLElement, Element::getElementType() doit être appelé - aucune sous-classe de Element n'est disponible pour une utilisation avec instanceof, par exemple.
  • La spécification DOM définit des fonctionnalités qui ne peuvent être implémentées que côté client. Par exemple, HTMLInputElement::files renvoie un FileList qui énumère tous les fichiers sélectionnés par l'utilisateur via l'interface du navigateur. Ce type de fonctionnalité est impossible à implémenter côté serveur, mais a été simulé pour la cohérence avec la spécification. Tenter d'utiliser des fonctionnalités côté client dans cette bibliothèque lève une ClientSideOnlyFunctionalityException.

Liaison de données et fonctionnalités de modèles de page

Ce dépôt vise à être aussi précis que possible par rapport à la spécification DOM. Une extension de ce dépôt est disponible à https://php.gt/domtemplate qui ajoute la création de modèles de pages et la liaison de données via des éléments personnalisés et des attributs de modèle, introduisant des fonctionnalités côté serveur similaires à celles des WebComponents.

HTMLDocument natif PHP 8.4

Depuis la sortie de PHP 8.4, une nouvelle classe native HTMLDocument est fournie nativement dans PHP. Grâce à ces liaisons natives, toutes les opérations sont beaucoup plus rapides. Des travaux ont été entrepris pour que l'implémentation Dom de PHPGT utilise le nouveau code natif. Heureusement, le DOM est une norme très bien définie, donc quoi qu'il arrive, des modifications minimales ou nulles seront nécessaires à votre code.

Jetez un œil aux benchmarks sur la branche php84-benchmark par vous-même : la plupart des opérations enregistrent une augmentation de vitesse de 90 % ou plus en passant à l'implémentation native !

Plus d'informations seront présentées dans le readme lorsque davantage de travaux auront été réalisés vers une implémentation des classes natives.

Télécharger l’outil
ChildNode::remove()
ChildNode::before
ChildNode::after
ChildNode::replaceWith()