naabu 2.6.1
fast SYN-based port discovery. Finds which TCP ports are open.
qsa.sh is a hosted remote scanner. You run one command; the scan runs from our infrastructure against the public IP you connected from, and the findings stream back to your terminal. There is nothing to download and nothing to install.
curl qsa.sh. We read the public IP of your connection from the trusted edge — you cannot set or spoof the target — and refuse it immediately if it’s a known CGNAT or mobile-carrier range, an IPv6 origin we can’t yet reputation-check, or an address our reputation data flags as a proxy, VPN, or Tor/relay.For logging or scripting, request escape-free plain output with curl qsa.sh?nocolor=1, the X-No-Color header, or a non-interactive tool such as wget. The default output is coloured for a live terminal.
There’s no black box here. qsa.sh runs the same open-source tools a security engineer would run by hand — we just run them for you, fast, and curate the noise. You’re paying for the compute and convenience, not secret sauce.
fast SYN-based port discovery. Finds which TCP ports are open.
fingerprints the service and exact version on each open port, then maps that version straight to known CVEs.
thousands of community-maintained checks for exposures (.env, .git, config leaks), default logins, subdomain and service takeovers, TLS misconfigurations, and version-matched CVEs.
You could install and run all three yourself — they’re free and open. If you’d rather not fight with Go toolchains, template flags and CVE feeds, we run them for you in seconds, curated to the checks that actually matter — and paying keeps the free scan free for everyone.
Powered by open-source naabu 2.6.1, nmap 7.93 + vulners, and nuclei 3.3.9 with the public nuclei-templates — no proprietary, black-box software.
We publish exactly what each tier does, down to the flags and template scope — so you can see there’s nothing hidden.
curl qsa.sh
live · ~30s · $0
nmap -sV --script vulners on every open port..env/.git), default logins, takeovers, TLS issues, and KEV + critical/high CVEs matched to the services we detected.curl https://qsa.sh/{token}
async · ~2–12 min · $5/mo
nmap -sV --script vulners.curl https://qsa.sh/{token}
async · ~13–16 minutes · $7 one-time
nmap -sV --script vulners.The free scan is live now; Full and Deep follow. See Pricing.
Every tier can only scan the IP you connect from — the address shown in the warning before the scan starts. There is no field to type another target, on the free scan or on any paid tier. A paid token isn’t “scan this IP for me”; it’s redeemed by running the command from the server you want scanned, so the target is always your own connecting address. Connections from known CGNAT or mobile-carrier ranges, from IPv6 (which we can’t yet reputation-check — run curl -4 qsa.sh), or ones our reputation data flags as a proxy, VPN, or Tor/relay are refused (best-effort, IPv4-only); your own cloud, hosting, or datacenter IP is not. Any address on our opt-out list is never scanned.
Before any packet is sent you get a 15-second countdown — press Ctrl-C to decline and nothing is scanned; continuing past it is your authorization. Free scanning is limited to 1 scan per 24 hours per IP (paid keys get their own cadence — Full 1 / hour, Deep unlimited) with a global capacity cap; under unusually high demand new scans briefly pause with a “try again shortly” notice, then recover automatically. Connections we identify as CGNAT, mobile-carrier, IPv6, or an anonymizing proxy/VPN/Tor are refused (best-effort, IPv4-only) so you can only scan your own origin — your own cloud or hosting IP is fine.
| bash?