---
name: cyberstrikeus-wstg-recon-config
description: "WSTG reconnaissance, configuration, error handling, and cryptography testing techniques"
license: "AGPL-3.0"
metadata:
  decimalai-skill-id: "d024e922-e968-4627-ba34-1a018b6793df"
  decimalai-version-id: "79ffe469-1da1-4f5c-8ecd-1847b1085f34"
  decimalai-version: "1"
  decimalai-body-sha256: "117d765a6225500b684a8c87465fc68c5dff908f5a70f2559fdbb0a204002c2a"
  decimalai-name: "cyberstrikeus/wstg-recon-config"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "security"
  decimalai-source: "https://app.decimal.ai/s/cyberstrikeus-wstg-recon-config@1/SKILL.md"
---
# Recon & Configuration Testing (WSTG-INFO + CONF + ERRH + CRYP)

## Google Dork Templates

Replace `TARGET` with the actual domain:

```
site:TARGET filetype:pdf | filetype:doc | filetype:xls
site:TARGET inurl:admin | inurl:login | inurl:dashboard
site:TARGET ext:php inurl:?
site:TARGET intitle:"index of"
site:TARGET inurl:wp-content | inurl:wp-includes
site:TARGET ext:log | ext:cfg | ext:env | ext:ini | ext:bak
site:TARGET "error" | "warning" | "fatal" | "exception"
inurl:"q=" site:TARGET
"TARGET" site:pastebin.com | site:github.com | site:trello.com
```

## Directory & File Discovery

### ffuf Commands

```bash
# Directory brute force
ffuf -u https://TARGET/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -mc 200,301,302,403 -ac

# File discovery
ffuf -u https://TARGET/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files.txt -mc 200,301,302 -ac

# Extension fuzzing
ffuf -u https://TARGET/indexFUZZ -w /usr/share/seclists/Discovery/Web-Content/web-extensions.txt -mc 200

# Virtual host discovery
ffuf -u https://TARGET -H "Host: FUZZ.TARGET" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -ac

# Parameter discovery
ffuf -u "https://TARGET/page?FUZZ=test" -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -mc 200 -ac
```

### Backup File Patterns

Test for these at discovered paths:

```
.bak, .old, .orig, .save, .swp, .swo, ~
.git/, .svn/, .hg/, .env, .DS_Store
config.php.bak, web.config.old, .htaccess.bak
wp-config.php.bak, database.yml.old
Copy of *, backup-*, archive-*
```

## Security Header Checklist

Check with `curl -I https://TARGET`:

| Header                    | Expected Value                           | Risk if Missing     |
| ------------------------- | ---------------------------------------- | ------------------- |
| Strict-Transport-Security | `max-age=31536000; includeSubDomains`    | MITM, SSL stripping |
| Content-Security-Policy   | No `unsafe-inline`, no `unsafe-eval`     | XSS                 |
| X-Content-Type-Options    | `nosniff`                                | MIME sniffing       |
| X-Frame-Options           | `DENY` or `SAMEORIGIN`                   | Clickjacking        |
| Referrer-Policy           | `strict-origin-when-cross-origin`        | Info leakage        |
| Permissions-Policy        | Restrict camera, microphone, geolocation | Feature abuse       |
| X-XSS-Protection          | `0` (deprecated, CSP preferred)          | N/A                 |
| Cache-Control             | `no-store` on sensitive pages            | Cached credentials  |

## TLS/SSL Testing

```bash
# testssl.sh (comprehensive)
testssl.sh --severity HIGH https://TARGET

# sslscan (quick)
sslscan --no-failed TARGET:443

# Check specific issues
# SSLv2/SSLv3 support
openssl s_client -connect TARGET:443 -ssl3 2>&1 | grep -i "alert"

# Certificate details
openssl s_client -connect TARGET:443 </dev/null 2>/dev/null | openssl x509 -text -noout

# Check for HSTS preload
curl -sI https://TARGET | grep -i strict-transport
```

**TLS Issues to Check:**

- SSLv3, TLS 1.0, TLS 1.1 supported (should be disabled)
- Weak ciphers (RC4, DES, 3DES, NULL, EXPORT)
- Missing Perfect Forward Secrecy (PFS)
- Certificate: expired, self-signed, wrong CN/SAN, weak signature (SHA1)
- BEAST, POODLE, Heartbleed, CRIME, BREACH, ROBOT

## HTTP Methods Testing

```bash
# Check allowed methods
curl -X OPTIONS https://TARGET/ -I

# Test dangerous methods
curl -X TRACE https://TARGET/ -I
curl -X PUT https://TARGET/test.txt -d "test" -I
curl -X DELETE https://TARGET/test.txt -I

# Method override headers
curl -X POST https://TARGET/admin -H "X-HTTP-Method-Override: PUT"
curl -X POST https://TARGET/admin -H "X-Method-Override: DELETE"
```

## Error Triggering Payloads

Force errors to check for information disclosure:

```bash
# Non-existent pages
curl -s https://TARGET/nonexistent-page-12345

# Invalid parameters
curl -s "https://TARGET/page?id='"
curl -s "https://TARGET/page?id=-1"
curl -s "https://TARGET/page?id=99999999"

# Large input
curl -s "https://TARGET/page?id=$(python3 -c 'print("A"*10000)')"

# Special characters
curl -s "https://TARGET/page?id=%00%0a%0d"

# Content-type mismatch
curl -s -X POST https://TARGET/api/endpoint -H "Content-Type: application/xml" -d "<test>"
```

**Look for in error responses:** stack traces, file paths, database names, framework versions, SQL error messages, internal IP addresses.

## Subdomain & Cloud Storage

```bash
# Subdomain enumeration
subfinder -d TARGET -silent | tee subs.txt
cat subs.txt | httpx -silent -status-code -title | tee live.txt

# Subdomain takeover check
subjack -w subs.txt -t 100 -o takeover.txt

# Cloud storage checks
# AWS S3
aws s3 ls s3://TARGET --no-sign-request 2>/dev/null
aws s3 ls s3://TARGET-backup --no-sign-request 2>/dev/null
aws s3 ls s3://TARGET-assets --no-sign-request 2>/dev/null

# Azure Blob
curl -s "https://TARGET.blob.core.windows.net/\$root?restype=container&comp=list"

# GCS
curl -s "https://storage.googleapis.com/TARGET"
```

For detailed procedures on any test, read:
`knowledge/web-application/WSTG-INFO/WSTG-INFO-{NN}.md`
`knowledge/web-application/WSTG-CONF/WSTG-CONF-{NN}.md`
`knowledge/web-application/WSTG-ERRH/WSTG-ERRH-{NN}.md`
`knowledge/web-application/WSTG-CRYP/WSTG-CRYP-{NN}.md`
