You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An ip key in target lines that pins the target's host to an ip, like curl --resolve. The connection goes to the ip, while the Host header, SNI and {{Hostname}} keep the hostname. Each target and ip pair would be a separate target, with its own template selection:
Scanning a vhost on a given server, an origin behind a CDN, or one host on each of its servers. There is no input for that today. A target of the ip with a Host header sends no SNI, and {{Hostname}} is the ip. -sa scans the ips DNS returns, not given ones, and it doesn't reach them correctly either. With app.test resolving to 127.0.0.1 and 127.0.0.2, a server on each, and templates that print which server answered (nuclei dev at a48a58e, JSONL fields trimmed to host, ip and the extracted value):
$ nuclei -u http://app.test:18080 -sa -t whoami.yaml -jsonl # http, title is the server's address
app.test ip=127.0.0.1 srv=127.0.0.1
app.test ip=127.0.0.2 srv=127.0.0.1
$ nuclei -u app.test:18301 -sa -t banner.yaml -jsonl # network, banner is one or two
app.test ip=127.0.0.2 two
app.test ip=127.0.0.2 two
$ nuclei -u http://redir.test:18201 -sa -t whoami-redirect.yaml -jsonl # redirect to other.test (127.0.0.3)
redir.test ip=127.0.0.1 srv=127.0.0.1 host=other.test:18202
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Please describe your feature request:
An
ipkey in target lines that pins the target's host to an ip, likecurl --resolve. The connection goes to the ip, while the Host header, SNI and{{Hostname}}keep the hostname. Each target and ip pair would be a separate target, with its own template selection:{"target": "https://app.example.com", "ip": "192.0.2.10"} {"target": "https://app.example.com", "ip": "192.0.2.11", "tags": ["cve"]}Describe the use case of this feature:
Scanning a vhost on a given server, an origin behind a CDN, or one host on each of its servers. There is no input for that today. A target of the ip with a
Hostheader sends no SNI, and{{Hostname}}is the ip.-sascans the ips DNS returns, not given ones, and it doesn't reach them correctly either. Withapp.testresolving to 127.0.0.1 and 127.0.0.2, a server on each, and templates that print which server answered (nucleidevat a48a58e, JSONL fields trimmed to host, ip and the extracted value):fastdialer.IPcontext value, and fastdialer serves the second ip from the dialer cached for the first one (Pinned dials reuse the dialer cached for the host:port, and cached dials send the wrong SNI fastdialer#579, PR fix: key the dial cache by the pinned ip, add WithResolveOverride fastdialer#580).CustomIPat all; they dial the hostname.fastdialer.IPvalue pins every dial made for the request, so a redirect to another host goes to the target's ip.The implementation is in #7863. It is built on projectdiscovery/fastdialer#580 and stays a draft until a fastdialer release includes it.
All reactions