cyberaudit-skill 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +241 -0
- package/dist/mcp-server.d.ts +2 -0
- package/dist/mcp-server.js +126 -0
- package/package.json +58 -0
- package/skills/cyberaudit/AGENT-BOOT.md +122 -0
- package/skills/cyberaudit/COMMANDS.md +1125 -0
- package/skills/cyberaudit/INSTALL.md +311 -0
- package/skills/cyberaudit/MASTER.md +194 -0
- package/skills/cyberaudit/README.md +154 -0
- package/skills/cyberaudit/USAGE-GUIDE.md +107 -0
- package/skills/cyberaudit/mobile/MOBILE-CHECKLIST.md +245 -0
- package/skills/cyberaudit/mobile/MOBILE-PHILOSOPHY.md +352 -0
- package/skills/cyberaudit/mobile/MOBILE-REMEDIATION-LIBRARY.md +468 -0
- package/skills/cyberaudit/mobile/MOBILE-THREAT-MODELS.md +279 -0
- package/skills/cyberaudit/mobile/frameworks/EXPO.md +247 -0
- package/skills/cyberaudit/mobile/frameworks/FLUTTER.md +338 -0
- package/skills/cyberaudit/mobile/frameworks/IONIC.md +248 -0
- package/skills/cyberaudit/mobile/frameworks/REACT-NATIVE.md +479 -0
- package/skills/cyberaudit/mobile/vulnerabilities/AUTH-MOBILE.md +160 -0
- package/skills/cyberaudit/mobile/vulnerabilities/BINARY-ANALYSIS.md +193 -0
- package/skills/cyberaudit/mobile/vulnerabilities/CRYPTO-MOBILE.md +192 -0
- package/skills/cyberaudit/mobile/vulnerabilities/IPC-DEEPLINKS.md +231 -0
- package/skills/cyberaudit/mobile/vulnerabilities/NETWORK-MOBILE.md +165 -0
- package/skills/cyberaudit/mobile/vulnerabilities/PERMISSIONS.md +180 -0
- package/skills/cyberaudit/mobile/vulnerabilities/RUNTIME-MOBILE.md +214 -0
- package/skills/cyberaudit/mobile/vulnerabilities/STORAGE.md +197 -0
- package/skills/cyberaudit/reports/EXECUTIVE-SUMMARY-TEMPLATE.md +188 -0
- package/skills/cyberaudit/reports/REPORT-TEMPLATE-MOBILE.md +410 -0
- package/skills/cyberaudit/reports/REPORT-TEMPLATE-WEB.md +222 -0
- package/skills/cyberaudit/shared/COMPLIANCE.md +307 -0
- package/skills/cyberaudit/shared/CVSS-GUIDE.md +175 -0
- package/skills/cyberaudit/shared/OWASP-MAPPER.md +130 -0
- package/skills/cyberaudit/shared/SEVERITY-SCORING.md +102 -0
- package/skills/cyberaudit/shared/THREAT-MODELING.md +112 -0
- package/skills/cyberaudit/web/WEB-CHECKLIST.md +222 -0
- package/skills/cyberaudit/web/WEB-PHILOSOPHY.md +308 -0
- package/skills/cyberaudit/web/WEB-REMEDIATION-LIBRARY.md +665 -0
- package/skills/cyberaudit/web/WEB-THREAT-MODELS.md +460 -0
- package/skills/cyberaudit/web/frameworks/ANGULAR.md +169 -0
- package/skills/cyberaudit/web/frameworks/EXPRESS.md +185 -0
- package/skills/cyberaudit/web/frameworks/LARAVEL.md +371 -0
- package/skills/cyberaudit/web/frameworks/NESTJS.md +337 -0
- package/skills/cyberaudit/web/frameworks/NEXTJS.md +352 -0
- package/skills/cyberaudit/web/frameworks/REACT.md +346 -0
- package/skills/cyberaudit/web/frameworks/VUE.md +205 -0
- package/skills/cyberaudit/web/vulnerabilities/AUTH-AUTHZ.md +117 -0
- package/skills/cyberaudit/web/vulnerabilities/BUSINESS-LOGIC.md +603 -0
- package/skills/cyberaudit/web/vulnerabilities/CORS.md +117 -0
- package/skills/cyberaudit/web/vulnerabilities/CSRF.md +131 -0
- package/skills/cyberaudit/web/vulnerabilities/DESERIALIZATION.md +96 -0
- package/skills/cyberaudit/web/vulnerabilities/HEADERS.md +105 -0
- package/skills/cyberaudit/web/vulnerabilities/IDOR-BOLA.md +153 -0
- package/skills/cyberaudit/web/vulnerabilities/INJECTION.md +165 -0
- package/skills/cyberaudit/web/vulnerabilities/SECRETS.md +119 -0
- package/skills/cyberaudit/web/vulnerabilities/SSRF.md +124 -0
- package/skills/cyberaudit/web/vulnerabilities/SUPPLY-CHAIN.md +142 -0
- package/skills/cyberaudit/web/vulnerabilities/XSS.md +133 -0
- package/skills/cyberaudit/web/vulnerabilities/XXE.md +94 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# 📄 XXE — XML EXTERNAL ENTITIES GUIDE
|
|
2
|
+
|
|
3
|
+
═══════════════════════════════════════════════════════════════
|
|
4
|
+
DEFINITION
|
|
5
|
+
═══════════════════════════════════════════════════════════════
|
|
6
|
+
|
|
7
|
+
XXE = Injection into XML parsing via external entities.
|
|
8
|
+
Allows reading local files, performing SSRF,
|
|
9
|
+
or causing DoS (Billion Laughs attack).
|
|
10
|
+
|
|
11
|
+
OWASP : A05:2021 (Security Misconfiguration)
|
|
12
|
+
CWE : CWE-611
|
|
13
|
+
|
|
14
|
+
CLASSIC PAYLOAD :
|
|
15
|
+
<?xml version="1.0"?>
|
|
16
|
+
<!DOCTYPE foo [
|
|
17
|
+
<!ENTITY xxe SYSTEM "file:///etc/passwd">
|
|
18
|
+
]>
|
|
19
|
+
<root>&xxe;</root>
|
|
20
|
+
|
|
21
|
+
→ If the parser reads the external entity →
|
|
22
|
+
contents of /etc/passwd in the response
|
|
23
|
+
|
|
24
|
+
SSRF PAYLOAD :
|
|
25
|
+
<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">
|
|
26
|
+
|
|
27
|
+
DoS PAYLOAD (Billion Laughs) :
|
|
28
|
+
<!DOCTYPE bomb [
|
|
29
|
+
<!ENTITY a "aaaa...aaaa"> (1000 chars)
|
|
30
|
+
<!ENTITY b "&a;&a;&a;..."> (1000x a)
|
|
31
|
+
<!ENTITY c "&b;&b;&b;..."> (1000x b)
|
|
32
|
+
]>
|
|
33
|
+
→ Exponential expansion → memory crash
|
|
34
|
+
|
|
35
|
+
═══════════════════════════════════════════════════════════════
|
|
36
|
+
PATTERNS TO DETECT
|
|
37
|
+
═══════════════════════════════════════════════════════════════
|
|
38
|
+
|
|
39
|
+
VULNERABLE CONTEXTS :
|
|
40
|
+
→ XML file upload
|
|
41
|
+
→ SVG file upload (XML-based)
|
|
42
|
+
→ DOCX/XLSX file upload (ZIP containing XML)
|
|
43
|
+
→ API accepting Content-Type: application/xml
|
|
44
|
+
→ XML configuration parsing
|
|
45
|
+
|
|
46
|
+
VULNERABLE CODE :
|
|
47
|
+
// PHP — Without disabling entities
|
|
48
|
+
$doc = new DOMDocument()
|
|
49
|
+
$doc->loadXML($userXml) // Vulnerable by default
|
|
50
|
+
|
|
51
|
+
// Java — SAXParser vulnerable by default in some versions
|
|
52
|
+
SAXParser parser = SAXParserFactory.newInstance().newSAXParser()
|
|
53
|
+
parser.parse(new InputSource(new StringReader(userXml)), handler)
|
|
54
|
+
|
|
55
|
+
// Python — lxml secure, xml.etree.ElementTree also
|
|
56
|
+
// BUT xmltodict with certain configs
|
|
57
|
+
|
|
58
|
+
// Node.js — xml2js
|
|
59
|
+
const result = await parseStringPromise(userXml) // Configuration ?
|
|
60
|
+
|
|
61
|
+
═══════════════════════════════════════════════════════════════
|
|
62
|
+
REMEDIATION
|
|
63
|
+
═══════════════════════════════════════════════════════════════
|
|
64
|
+
|
|
65
|
+
DISABLE EXTERNAL ENTITIES :
|
|
66
|
+
|
|
67
|
+
PHP :
|
|
68
|
+
$doc = new DOMDocument()
|
|
69
|
+
// Disable external entities
|
|
70
|
+
libxml_disable_entity_loader(true) // PHP < 8.0
|
|
71
|
+
// PHP 8.0+ : disabled by default
|
|
72
|
+
$doc->loadXML($userXml, LIBXML_NOENT | LIBXML_DTDLOAD)
|
|
73
|
+
// Better : use LIBXML_NONET to block network
|
|
74
|
+
|
|
75
|
+
NODE.JS with xml2js :
|
|
76
|
+
import { parseString } from 'xml2js'
|
|
77
|
+
// xml2js does not expand external entities by default ✅
|
|
78
|
+
|
|
79
|
+
NODE.JS with fast-xml-parser :
|
|
80
|
+
import { XMLParser } from 'fast-xml-parser'
|
|
81
|
+
const parser = new XMLParser({
|
|
82
|
+
allowBooleanAttributes: false,
|
|
83
|
+
processEntities: false, // Disable entities
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
RECOMMENDED ALTERNATIVE :
|
|
87
|
+
// Use JSON instead of XML when possible
|
|
88
|
+
// JSON does not have this problem
|
|
89
|
+
|
|
90
|
+
FOR SVG UPLOADS :
|
|
91
|
+
// Reject SVGs with DTD or external entities
|
|
92
|
+
// Reprocess SVGs with sharp to eliminate dangerous XML
|
|
93
|
+
import sharp from 'sharp'
|
|
94
|
+
const safePng = await sharp(svgBuffer).png().toBuffer()
|