mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-24 20:28:06 +02:00
[pitboss] phase 05: Track J.3 + Track L.3 — XXE corpus + DocumentBuilder / lxml / libxml / SimpleXML adapters
This commit is contained in:
parent
637b733928
commit
4de925c3ef
35 changed files with 1985 additions and 23 deletions
10
tests/dynamic_fixtures/xxe/php/benign.php
Normal file
10
tests/dynamic_fixtures/xxe/php/benign.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
// Phase 05 (Track J.3) — PHP XXE benign fixture.
|
||||
//
|
||||
// Same parser surface as `vuln.php` but the entity loader stays
|
||||
// disabled and the LIBXML_NOENT flag is omitted, so the same payload's
|
||||
// `<!ENTITY>` block is rejected and no entity body is substituted.
|
||||
function run(string $body) {
|
||||
libxml_disable_entity_loader(true);
|
||||
return simplexml_load_string($body);
|
||||
}
|
||||
11
tests/dynamic_fixtures/xxe/php/vuln.php
Normal file
11
tests/dynamic_fixtures/xxe/php/vuln.php
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
// Phase 05 (Track J.3) — PHP XXE vuln fixture.
|
||||
//
|
||||
// The function pulls XML off the request and feeds it to
|
||||
// `simplexml_load_string` after re-enabling the libxml entity loader
|
||||
// — so any `<!ENTITY xxe SYSTEM "file:///…">` in the payload is
|
||||
// resolved and its body substituted into the parsed document.
|
||||
function run(string $body) {
|
||||
libxml_disable_entity_loader(false);
|
||||
return simplexml_load_string($body, "SimpleXMLElement", LIBXML_NOENT);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue