Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
gha-lab-fb6df3d456 — # Laboratorio de investigación de seguridad autorizado que reproduce CVE-2025-46820 (GHSA-cwj7-6v67-2cm4): GITHUB_TOKEN persistido en artefactos de CI descargables públicamente en phpgt/Dom. Instantánea de phpgt/Dom @ b73d7e8. | Kitploit
Herramientas/GitHubGitHub/pvharmo2/gha-lab-fb6df3d456
Análisis de VulnerabilidadesSeguridad en la NubeSeguridad de Cadena de SuministroAprendizaje y EducaciónRecursos Curados
GitHubpvharmo2/gha-lab-fb6df3d456

gha-lab-fb6df3d456

# Laboratorio de investigación de seguridad autorizado que reproduce CVE-2025-46820 (GHSA-cwj7-6v67-2cm4): GITHUB_TOKEN persistido en artefactos de CI descargables públicamente en phpgt/Dom. Instantánea de phpgt/Dom @ b73d7e8.

Ver Repositorio
hace 22h 11mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Artefacto de investigación automatizado — no es el proyecto original.

Este repositorio es un laboratorio desechable construido por un sistema automatizado para una tesis de maestría en Université Laval sobre la reproducción de vulnerabilidades publicadas en flujos de trabajo de GitHub Actions. Es una instantánea verbatim de phpgt/Dom en el commit b73d7e8b54963796132df99902c3224016511bb9 (2025-03-21), redistribuida bajo la licencia de ese proyecto, cuyo archivo se incluye sin cambios en esta instantánea.

El proyecto original no está involucrado, nunca es el objetivo, y la vulnerabilidad estudiada aquí ya es pública. Cada secreto y variable en este repositorio es un valor ficticio generado aleatoriamente — no hay ninguna credencial real presente. Las referencias de acciones e imágenes de ejecutores están fijadas a lo que resolvieron el 2025-03-21; consulte pinning.md en la salida del sistema para cada cambio realizado en la instantánea.

Preguntas u objeciones: [email protected]


La API DOM moderna para proyectos PHP 7

API DOM moderna.

Construido sobre el DOMDocument nativo de PHP, este proyecto proporciona acceso a las API DOM modernas, tal como esperarías al trabajar con código del lado del cliente en el navegador.

Realizar manipulación del DOM en tu código del lado del servidor mejora la forma en que se pueden construir páginas dinámicas. Utilizar una interfaz orientada a objetos estandarizada significa que la página puede procesarse previamente, beneficiando a navegadores, servidores web y redes de entrega de contenido.


Estado de compilación
Calidad del código
Cobertura del código
Versión actual
Documentación de PHP.Gt/Dom

Ejemplo de uso: ¡Hola, tú!

Nota importante: el ejemplo mostrado aquí es solo con fines ilustrativos, pero usar el DOM para establecer datos directamente en los valores de los elementos acopla estrechamente la lógica a la vista, lo que se considera una mala práctica. Consulta la biblioteca DomTemplate para una solución más robusta para vincular datos al DOM.

Considera una página con un formulario, con un elemento de entrada para escribir tu nombre. Cuando se envía el formulario, la página debería saludarte por tu nombre.

Este es un ejemplo sencillo de cómo los archivos HTML de origen pueden tratarse como plantillas. Esto puede aplicarse fácilmente a páginas de plantillas más avanzadas para proporcionar contenido dinámico, sin requerir técnicas no estándar como {{llaves curvas}} para marcadores de posición, o la construcción de HTML propensa a errores mediante echo '<div class='easy-mistake'>' . $content['opa'] . '</div>' desde PHP.

HTML de origen (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 utilizado para inyectar tu nombre (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;

Características de un vistazo

  • Compatible con el DOM Living Standard del W3C:
    • El tipo Element representa todas las especificaciones de HTMLElement, como HTMLAnchorElement (<a>), HTMLButtonElement (<button>), HTMLInputElement (<input>), HTMLTableSectionElement (<thead>, <tbody>, <tfoot>), etc. El tipo particular se puede detectar con Element::getElementType(), que devuelve uno de los valores del enum ElementType.
    • Extensiones de DOMException para capturar diferentes tipos de excepción, como EnumeratedValueException, HierarchyRequestError, IndexSizeException, etc.
    • Funcionalidad del lado del cliente simulada, incluyendo clases para FileList, StyleSheet, VideoTrackList, WindowProxy, etc.
  • Funcionalidad de DOM nivel 4+:
    • Referencia elementos usando selectores CSS mediante Element::querySelector() y (Element::querySelectorAll())
    • Añade/elimina/alterna las clases de los elementos usando ClassList
    • Recorre Nodos solo de Elemento con Element::previousElementSibling, Element::nextElementSibling, Element::children y Element::lastElementChild y firstElementChild, etc.
    • Inserta y elimina Nodos hijos con , , ,
  • Propiedades estándar en el HTMLDocument:
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

Limitaciones conocidas / cumplimiento de la especificación W3C

Este repositorio tiene como objetivo ser lo más preciso posible con la especificación DOM en https://dom.spec.whatwg.org/ - a partir de la v4.0.0 toda la funcionalidad está implementada con las siguientes desviaciones menores pero inevitables del estándar:

  • La propiedad tagName de los elementos está en mayúsculas.
  • Para comprobar el tipo HTMLElement, se debe llamar a Element::getElementType() - no hay subclases de Element disponibles para usar con instanceof, por ejemplo.
  • La especificación DOM define funcionalidad que solo es posible implementar en el lado del cliente. Por ejemplo, HTMLInputElement::files devuelve un FileList que enumera todos los archivos seleccionados por el usuario a través de la interfaz del navegador. Este tipo de funcionalidad es imposible de implementar en el lado del servidor, pero se ha simulado para mantener la coherencia con la especificación. Intentar usar funcionalidad del lado del cliente dentro de esta biblioteca lanza una ClientSideOnlyFunctionalityException.

Características de vinculación de datos y plantillas de página

Este repositorio pretende ser lo más preciso posible con la especificación DOM. Una extensión del repositorio está disponible en https://php.gt/domtemplate que añade plantillas de página y vinculación de datos mediante elementos personalizados y atributos de plantilla, introduciendo funcionalidad del lado del servidor similar a la de WebComponents.

HTMLDocument nativo de PHP 8.4

Desde el lanzamiento de PHP 8.4, hay una nueva clase nativa HTMLDocument incluida en PHP de forma nativa. Al tener enlaces nativos, todas las operaciones son mucho más rápidas. Se ha comenzado a trabajar para que la implementación de Dom de PHPGT utilice el nuevo código nativo. Afortunadamente, el DOM es un estándar muy bien definido, por lo que pase lo que pase, se requerirán cambios mínimos o nulos en tu código.

Echa un vistazo a los benchmarks en la rama php84-benchmark por ti mismo: la mayoría de las operaciones registran un aumento de velocidad del 90% o más al cambiar a la implementación nativa.

Se proporcionará más información en el readme cuando se haya avanzado más hacia una implementación de las clases nativas.

Descargar herramienta
ChildNode::remove()
ChildNode::before
ChildNode::after
ChildNode::replaceWith()