Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
090f0c2
parser for fqdn
Mzack9999 Mar 21, 2026
c3b06b5
fixing lint
Mzack9999 Mar 21, 2026
788e10e
improving impersonate
Mzack9999 Mar 22, 2026
4586d67
fixing lint
Mzack9999 Mar 22, 2026
478b774
Merge remote-tracking branch 'origin/dev' into tls-impersonate-strategy
Mzack9999 Mar 25, 2026
6a83a6b
go.sum
Mzack9999 Mar 25, 2026
888bdd8
remove random (unsupported curves pick)
Mzack9999 Mar 25, 2026
7c8c2e0
Merge branch 'dev' into improve-fqdn-extraction
Mzack9999 May 16, 2026
12b77e8
Merge branch 'dev' into tls-impersonate-strategy
Mzack9999 May 16, 2026
09917be
docker CI fix
ehsandeep Jul 9, 2026
6d2399a
chore(deps): bump the modules group across 1 directory with 5 updates…
dependabot[bot] Jul 16, 2026
b85cb86
chore(deps): bump github.com/happyhackingspace/dit from 0.0.28 to 0.0…
dependabot[bot] Jul 16, 2026
4988f48
chore(deps): bump golang.org/x/text from 0.38.0 to 0.40.0 (#2534)
dependabot[bot] Jul 16, 2026
e18c703
chore(deps): bump golang.org/x/net from 0.56.0 to 0.57.0 (#2535)
dependabot[bot] Jul 16, 2026
997f3f5
docs: add Common Recipes section for well-known files (#2527)
iacker Jul 16, 2026
a053579
Populate CPE version when ASQ product names differ from wappalyzer (#…
Mzack9999 Jul 16, 2026
569a751
fix domains
Mzack9999 Jul 16, 2026
a11a7be
Merge pull request #2459 from projectdiscovery/improve-fqdn-extraction
Mzack9999 Jul 16, 2026
b066246
merge dev
Mzack9999 Jul 16, 2026
3f465fe
warn ja3
Mzack9999 Jul 16, 2026
7d8c90d
Merge pull request #2461 from projectdiscovery/tls-impersonate-strategy
Mzack9999 Jul 16, 2026
53beddb
chore(deps): bump the modules group with 3 updates
dependabot[bot] Jul 20, 2026
70f8b00
chore(deps): bump github.com/go-faker/faker/v4 from 4.9.0 to 4.10.0
dependabot[bot] Jul 20, 2026
ef56b82
chore(deps): bump github.com/happyhackingspace/dit from 0.0.29 to 0.0.31
dependabot[bot] Jul 20, 2026
a5012da
group external
Mzack9999 Jul 22, 2026
389ec19
fix comments
Mzack9999 Jul 22, 2026
4a6df3a
Merge pull request #2542 from projectdiscovery/dependabot-group-external
Mzack9999 Jul 22, 2026
17c23df
Merge pull request #2539 from projectdiscovery/dependabot/go_modules/…
Mzack9999 Jul 22, 2026
d4730b5
Merge pull request #2540 from projectdiscovery/dependabot/go_modules/…
Mzack9999 Jul 22, 2026
d403a40
Merge pull request #2541 from projectdiscovery/dependabot/go_modules/…
Mzack9999 Jul 22, 2026
892a6e6
chore(deps): bump the projectdiscovery group with 6 updates
dependabot[bot] Jul 29, 2026
8114098
Merge pull request #2546 from projectdiscovery/dependabot/go_modules/…
Mzack9999 Aug 5, 2026
ca92e9f
fix: pdcp data loss, pipeline conn leak, Close() race, FilterCustom e…
tal7aouy Aug 5, 2026
3bee964
fix: make binary body test use a local server
dogancanbakir Aug 12, 2026
50b901a
Merge pull request #2555 from projectdiscovery/fix-binary-body-test
Mzack9999 Aug 12, 2026
4e7e70e
chore(deps): bump the projectdiscovery group across 1 directory with …
dependabot[bot] Aug 19, 2026
3ccc480
Merge pull request #2563 from projectdiscovery/dependabot/go_modules/…
Mzack9999 Aug 24, 2026
675b1a9
chore(deps): bump the external group across 1 directory with 5 updates
dependabot[bot] Aug 24, 2026
9f07af2
Merge pull request #2562 from projectdiscovery/dependabot/go_modules/…
Mzack9999 Aug 24, 2026
2f8ce25
feat: add -kb to make page type classification opt-in
dogancanbakir Aug 12, 2026
1be2364
fail classifier
Mzack9999 Aug 24, 2026
b022001
merge dev
Mzack9999 Aug 24, 2026
c8d240c
fix leaks
Mzack9999 Aug 24, 2026
8a6eaaa
count newline
Mzack9999 Aug 24, 2026
53c816e
Merge pull request #2549 from tal7aouy/fix/pdcp-pipeline-filter-bugs
Mzack9999 Aug 24, 2026
2ecb5c5
Merge pull request #2554 from projectdiscovery/feat-kb-opt-in
dogancanbakir Aug 26, 2026
62168a9
bump version to v1.11.0
dogancanbakir Aug 26, 2026
534d8bb
chore(deps): bump the projectdiscovery group with 4 updates (#2566)
dependabot[bot] Aug 27, 2026
b614009
chore(deps): bump github.com/happyhackingspace/dit from 0.0.32 to 0.0…
dependabot[bot] Aug 27, 2026
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
7 changes: 6 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,13 @@ updates:
labels:
- "Type: Maintenance"
groups:
modules:
# Internal PD libraries, usually safe to review as a batch
projectdiscovery:
patterns: ["github.com/projectdiscovery/*"]
# Other packages, separate from PD bumps
external:
patterns: ["*"]
exclude-patterns: ["github.com/projectdiscovery/*"]

# # Maintain dependencies for GitHub Actions
# - package-ecosystem: "github-actions"
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Base
FROM golang:1.25.7-alpine AS builder
FROM golang:1.26.5-alpine AS builder

RUN apk add --no-cache git build-base gcc musl-dev
WORKDIR /app
Expand Down
78 changes: 77 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ PROBES:
-server, -web-server display server name
-td, -tech-detect display technology in use based on wappalyzer dataset
-cff, -custom-fingerprint-file string path to a custom fingerprint file for technology detection
-kb, -knowledge-base enable knowledge base classification
-method display http request method
-ws, -websocket display server using websocket
-ip display host ip
Expand Down Expand Up @@ -238,7 +239,7 @@ CONFIGURATIONS:
-ldp, -leave-default-ports leave default http/https ports in host header (eg. http://host:80 - https://host:443
-ztls use ztls library with autofallback to standard one for tls13
-no-decode avoid decoding body
-tlsi, -tls-impersonate enable experimental client hello (ja3) tls randomization
-tlsi, -tls-impersonate string enable experimental client hello (ja3) tls impersonation (chrome, or ja3 full string)
-no-stdin Disable Stdin processing
-hae, -http-api-endpoint string experimental http api endpoint
-sf, -secret-file string path to secret file for authentication
Expand Down Expand Up @@ -285,6 +286,81 @@ For details about running httpx, see https://docs.projectdiscovery.io/tools/http
### Using `httpx` as a library
`httpx` can be used as a library by creating an instance of the `Option` struct and populating it with the same options that would be specified via CLI. Once validated, the struct should be passed to a runner instance (to be closed at the end of the program) and the `RunEnumeration` method should be called. A minimal example of how to do it is in the [examples](examples/) folder.

## Common Recipes

Below are practical one-liners for common use cases leveraging httpx's composable primitives. These recipes are validated in `runner/wellknown_recipes_test.go`.

Use `-mdc` with DSL helpers such as `contains(content_type, ...)` and `contains(body, ...)` to match response metadata and body content. (`-mr`/`-ms` match the full raw response; use `-mdc` for structured field matching.)

### Well-known files

**security.txt**
Probe for a valid [RFC 9116](https://www.rfc-editor.org/rfc/rfc9116.html) security.txt file at the standard paths (`/.well-known/security.txt`, `/security.txt`):

```bash
echo target.com | httpx -path '/.well-known/security.txt,/security.txt' -mc 200 -mdc 'contains(content_type, "text/plain") && contains(body, "Contact:") && contains_any(body, "mailto:", "https://")'
```

- `-path` tests custom path(s)
- `-mc 200` matches HTTP 200
- `-mdc` matches using DSL expressions on response fields such as `content_type` and `body`

**robots.txt**

```bash
echo target.com | httpx -path '/robots.txt' -mc 200 -mdc 'contains(content_type, "text/plain")'
```

**sitemap.xml**

```bash
echo target.com | httpx -path '/sitemap.xml' -mc 200 -mdc 'contains_any(content_type, "application/xml", "text/xml") && contains(body, "<urlset")'
```

**humans.txt**

```bash
echo target.com | httpx -path '/humans.txt' -mc 200 -mdc 'contains(content_type, "text/plain")'
```

**ads.txt**

```bash
echo target.com | httpx -path '/ads.txt' -mc 200 -mdc 'contains(content_type, "text/plain") && contains(body, "google.com")'
```

### Well-known URIs

**OpenID Connect discovery** ([spec](https://openid.net/specs/openid-connect-discovery-1_0.html))

```bash
echo target.com | httpx -path '/.well-known/openid-configuration' -mc 200 -mdc 'contains(content_type, "application/json") && contains(body, "\"issuer\"")'
```

**Apple Universal Links**

```bash
echo target.com | httpx -path '/.well-known/apple-app-site-association,/.well-known/apple-app-site-association.json' -mc 200 -mdc 'contains(content_type, "application/json") && contains(body, "\"applinks\"")'
```

**Android App Links**

```bash
echo target.com | httpx -path '/.well-known/assetlinks.json' -mc 200 -mdc 'contains(content_type, "application/json") && contains(body, "\"android_app\"")'
```

**crossdomain.xml** (legacy Flash policy file)

```bash
echo target.com | httpx -path '/crossdomain.xml' -mc 200 -mdc 'contains_any(content_type, "application/xml", "text/xml") && contains(body, "cross-domain-policy")'
```

**Other well-known URIs** ([IANA registry](https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml)):

```bash
echo target.com | httpx -path '/.well-known/security.txt,/.well-known/change-password,/.well-known/openid-configuration' -mc 200
```

# Notes

- As default, `httpx` probe with **HTTPS** scheme and fall-back to **HTTP** only if **HTTPS** is not reachable.
Expand Down
2 changes: 1 addition & 1 deletion cmd/functional-test/testcases.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ scanme.sh {{binary}} -silent -ztls
scanme.sh {{binary}} -silent -jarm
https://scanme.sh?a=1*1 {{binary}} -silent
https://scanme.sh:443 {{binary}} -asn
scanme.sh {{binary}} -silent -tls-impersonate
scanme.sh {{binary}} -silent -tls-impersonate chrome
example.com {{binary}} -silent -bp -strip
scanme.sh {{binary}} -cpe -silent
Loading
Loading