Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gha-lab-fb6df3d456 — 승인된 보안 연구 랩으로 CVE-2025-46820(GHSA-cwj7-6v67-2cm4)을 재현합니다: phpgt/Dom에서 GITHUB_TOKEN이 공개적으로 다운로드 가능한 CI 아티팩트에 유지됨. phpgt/Dom @ b73d7e8 스냅샷. | Kitploit
도구/GitHubGitHub/pvharmo2/gha-lab-fb6df3d456
Vulnerability AnalysisCloud SecuritySupply Chain SecurityLearning & EducationCurated Resources
GitHubpvharmo2/gha-lab-fb6df3d456

gha-lab-fb6df3d456

승인된 보안 연구 랩으로 CVE-2025-46820(GHSA-cwj7-6v67-2cm4)을 재현합니다: phpgt/Dom에서 GITHUB_TOKEN이 공개적으로 다운로드 가능한 CI 아티팩트에 유지됨. phpgt/Dom @ b73d7e8 스냅샷.

저장소 보기
22시간 11분 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

자동화된 연구 산출물 — 업스트림 프로젝트가 아님.

이 저장소는 Université Laval의 석사 논문을 위해 자동화된 하네스가 구축한 일회용 실험실로, 공개된 GitHub Actions 워크플로우 취약점 재현을 목적으로 합니다. 이는 커밋 b73d7e8b54963796132df99902c3224016511bb9(2025-03-21) 시점의 phpgt/Dom에 대한 그대로의 스냅샷이며, 해당 프로젝트의 자체 라이선스에 따라 재배포되며, 해당 라이선스 파일은 이 스냅샷에 변경 없이 포함되어 있습니다.

업스트림 프로젝트는 이와 관련이 없으며, 결코 공격 대상이 아닙니다. 여기서 연구된 취약점은 이미 공개된 상태입니다. 이 저장소의 모든 시크릿과 변수는 무작위로 생성된 더미 값입니다 — 실제 자격 증명은 존재하지 않습니다. 액션 참조와 러너 이미지는 2025-03-21에 확인된 값으로 고정되어 있습니다. 스냅샷에 적용된 모든 변경 사항은 하네스 출력의 pinning.md를 참조하세요.

질문 또는 이의 제기: [email protected]


PHP 7 프로젝트를 위한 현대적인 DOM API

현대적인 DOM API.

PHP의 네이티브 DOMDocument 위에 구축된 이 프로젝트는 브라우저에서 클라이언트 측 코드로 작업할 때 기대하는 현대적인 DOM API에 대한 접근을 제공합니다.

서버 측 코드에서 DOM 조작을 수행하면 동적 페이지를 구축하는 방식을 향상시킬 수 있습니다. 표준화된 객체 지향 인터페이스를 활용하면 페이지를 사전 처리할 수 있어 브라우저, 웹 서버 및 콘텐츠 전송 네트워크에 이점을 제공합니다.


빌드 상태
코드 품질
코드 커버리지
현재 버전
PHP.Gt/Dom 문서

사용 예시: 안녕하세요, 당신!

중요 참고 사항: 여기에 표시된 예시는 설명 목적일 뿐이며, DOM을 사용하여 요소의 값에 데이터를 직접 설정하는 것은 로직을 뷰에 밀접하게 결합시키므로 좋지 않은 관행으로 간주됩니다. DOM에 데이터를 바인딩하는 더 견고한 솔루션은 DomTemplate 라이브러리를 참조하세요.

이름을 입력하는 input 요소가 있는 양식이 포함된 페이지를 생각해 보세요. 양식이 제출되면 페이지는 이름으로 당신을 환영해야 합니다.

이것은 소스 HTML 파일을 템플릿으로 취급할 수 있는 방법의 간단한 예시입니다. 이는 {{중괄호}}와 같은 비표준 기술이나 PHP 내에서 오류가 발생하기 쉬운 echo '<div class='easy-mistake'>' . $content['opa'] . '</div>' HTML 구축을 사용하지 않고도 동적 콘텐츠를 제공하기 위해 더 고급 템플릿 페이지에 쉽게 적용할 수 있습니다.

소스 HTML (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 (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;

한눈에 보는 기능

  • W3C의 DOM Living Standard와 호환:
    • Element 타입은 HTMLAnchorElement(<a>), HTMLButtonElement(<button>), HTMLInputElement(<input>), HTMLTableSectionElement(<thead>, <tbody>, <tfoot>) 등과 같은 모든 HTMLElement 사양을 나타냅니다. 특정 타입은 ElementType 열거형 값 중 하나를 반환하는 Element::getElementType()로 감지할 수 있습니다.
    • EnumeratedValueException, HierarchyRequestError, IndexSizeException 등 다양한 유형의 예외를 포착하기 위한 DOMException 확장.
    • FileList, StyleSheet, VideoTrackList, WindowProxy 등의 클래스를 포함한 클라이언트 측 기능 스텁.
  • DOM 레벨 4+ 기능:
    • Element::querySelector() 및 (Element::querySelectorAll())를 통한 CSS 선택기를 사용한 요소 참조
    • ClassList를 사용한 요소 클래스 추가/제거/토글
    • Element::previousElementSibling, Element::nextElementSibling, Element::children, Element::lastElementChild 및 firstElementChild 등을 사용한 Element 전용 노드 탐색
    • ChildNode::remove(), , , 를 사용한 자식 노드 삽입 및 제거
  • HTMLDocument의 표준 속성:
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

알려진 제한 사항 / W3C 사양 준수

이 저장소는 https://dom.spec.whatwg.org/ 의 DOM 사양에 최대한 정확하게 부합하는 것을 목표로 합니다. v4.0.0 기준으로 모든 기능이 구현되어 있으며, 표준과의 다음과 같은 사소하지만 불가피한 차이점이 있습니다:

  • 요소의 tagName 속성은 대문자입니다.
  • HTMLElement 타입을 확인하려면 Element::getElementType()을 호출해야 합니다. 예를 들어 instanceof와 함께 사용할 수 있는 Element의 하위 클래스는 없습니다.
  • DOM 사양은 클라이언트 측에서만 구현할 수 있는 기능을 정의합니다. 예를 들어, HTMLInputElement::files는 브라우저 인터페이스를 통해 사용자가 선택한 모든 파일을 열거하는 FileList를 반환합니다. 이러한 종류의 기능은 서버 측에서 구현하는 것이 불가능하지만 사양과의 일관성을 위해 스텁 처리되었습니다. 이 라이브러리 내에서 클라이언트 측 기능을 사용하려고 하면 ClientSideOnlyFunctionalityException이 발생합니다.

데이터 바인딩 및 페이지 템플릿 기능

이 저장소는 DOM 사양에 최대한 정확하게 부합하도록 설계되었습니다. 이 저장소의 확장은 https://php.gt/domtemplate 에서 제공되며, 사용자 정의 요소와 템플릿 속성을 통해 페이지 템플릿과 데이터 바인딩을 추가하여 WebComponents와 유사한 서버 측 기능을 도입합니다.

PHP 8.4 네이티브 HTMLDocument

PHP 8.4 릴리스 이후, PHP에 네이티브로 제공되는 새로운 HTMLDocument 클래스가 추가되었습니다. 네이티브 바인딩을 갖추고 있어 모든 작업이 훨씬 빠릅니다. PHPGT의 Dom 구현이 새로운 네이티브 코드를 활용하도록 하는 작업이 시작되었습니다. 다행히 DOM은 매우 잘 정의된 표준이므로 어떤 경우에도 코드 변경은 최소화되거나 필요하지 않을 것입니다.

php84-benchmark 브랜치의 벤치마크를 직접 확인해 보세요: 대부분의 작업이 네이티브 구현으로 전환함으로써 90% 이상의 속도 향상이 기록되었습니다!

네이티브 클래스 구현을 향한 더 많은 작업이 진행되면 추가 정보가 readme에 게시될 것입니다.

도구 다운로드
ChildNode::before
ChildNode::after
ChildNode::replaceWith()