Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmd/aiscan/imports_default_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
)

func TestDefaultCapabilitySet(t *testing.T) {
want := []string{"arsenal", "core", "gogo", "ioa", "neutron", "proton", "proxy", "scan", "search", "spray", "zombie"}
want := []string{"arsenal", "core", "curl", "gogo", "ioa", "neutron", "proton", "proxy", "scan", "search", "spray", "zombie"}
if got := capability.IDsSorted(); !slices.Equal(got, want) {
t.Fatalf("default capabilities = %#v, want %#v", got, want)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/aiscan/imports_full_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
)

func TestFullCapabilitySet(t *testing.T) {
want := []string{"arsenal", "browser", "core", "gogo", "ioa", "katana", "neutron", "passive", "proton", "proxy", "scan", "search", "spray", "zombie"}
want := []string{"arsenal", "browser", "core", "curl", "gogo", "ioa", "katana", "neutron", "passive", "proton", "proxy", "scan", "search", "spray", "zombie"}
if got := capability.IDsSorted(); !slices.Equal(got, want) {
t.Fatalf("full capabilities = %#v, want %#v", got, want)
}
Expand Down
14 changes: 12 additions & 2 deletions skills/aiscan/okf/easm/curl.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,13 @@ Capabilities:
- follow redirects (`-L`), with a bounded redirect count (`--max-redirs`)
- carry and persist cookies across calls (`-b` / `-c`)
- override the naturalized User-Agent and headers when a specific client shape is needed
- include response headers (`-i`), write the body to a file (`-o`), and report
outcome fields (`-w`, e.g. `%{http_code}`, `%{url_effective}`)
- include response headers (`-i`/`-I`), dump them separately (`-D`), write the
body to a file (`-o`), and report outcome fields (`-w`, e.g. `%{http_code}`,
`%{url_effective}`)
- fail on HTTP error responses (`-f`), set a transfer deadline (`-m`), and
select HTTP/1.1 or HTTP/2 (`--http1.1`/`--http2`)
- route a hostname to an explicit address (`--resolve`) when running without a
proxy; preserve URL dot segments with `--path-as-is`

Common usage:

Expand All @@ -31,6 +36,9 @@ curl <url>
curl -X POST -d 'a=1&b=2' <url>
curl -H 'Authorization: Bearer ...' -i <url>
curl -L -b 'sid=abc' -c jar.txt <url>
curl -fsSL -m 10 <url>
curl -D headers.txt -o body.bin <url>
curl --resolve example.test:443:192.0.2.10 https://example.test/
```

Notes:
Expand All @@ -39,6 +47,8 @@ Notes:
first-class path for evidence-backed HTTP probing.
- A browser User-Agent and header set are applied only where you did not set them;
`-A` and `-H` always win.
- `--resolve` is rejected when a proxy is active because the proxy owns the
destination connection; it is never silently treated as a no-op.
- Unsupported flags are rejected rather than silently ignored, so behavior is
never quietly different from what was asked.

Expand Down
Loading
Loading