Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
httpgrep — Async HTTP(S) स्कैनर जो होस्ट्स, पोर्ट्स, CIDR/रेंज और TLS-cert vhosts में स्ट्रिंग्स या regex के लिए रिस्पॉन्स बॉडीज़ और हेडर्स को grep करता है। | Kitploit
उपकरण/GitHubGitHub/noptrix/httpgrep
टोहीभेद्यता स्कैनरजानकारी एकत्र करनावेब सुरक्षापेनिट्रेशन टेस्टिंगक्रॉलर
GitHubnoptrix/httpgrep

httpgrep

Async HTTP(S) स्कैनर जो होस्ट्स, पोर्ट्स, CIDR/रेंज और TLS-cert vhosts में स्ट्रिंग्स या regex के लिए रिस्पॉन्स बॉडीज़ और हेडर्स को grep करता है।

रिपॉजिटरी देखें
36716 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

विवरण

एक तेज़, अतुल्यकालिक (asynchronous) Python टूल जो HTTP(S) सर्वरों को स्कैन करता है और HTTP प्रतिक्रिया बॉडी और हेडर में स्ट्रिंग्स या रेगेक्स पैटर्न खोजता है।

यह एकल होस्ट, URL, CIDR रेंज, IP रेंज या फ़ाइलें लेता है; प्रति लक्ष्य कई पोर्ट स्कैन करता है (एकल, कॉमा-सूचियाँ या रेंज, प्रति पोर्ट TLS बनाम सादा स्वतः पता लगाता है); TLS प्रमाणपत्रों से सीधे नाम-आधारित (v)होस्ट खींचकर स्कैन कर सकता है; मिलानों को टर्मिनल पर लाइव स्ट्रीम करता है; और परिणामों को टेक्स्ट, CSV या JSONL लॉग फ़ाइलों में लिख सकता है।

यह बड़े स्कैन के लिए बनाया गया है: एक async कोर हजारों समवर्ती कनेक्शनों को चलाता है, एक TCP प्रीफ़्लाइट मृत पोर्ट्स को कम लागत में छोड़ देता है, प्रति-होस्ट और वैश्विक टाइमआउट इसे धीमे/मृत लक्ष्यों पर अटकने से रोकते हैं, और एक बाधित रन को फिर से शुरू किया जा सकता है।

आवश्यकताएँ

  • Python 3.11+ POSIX सिस्टम पर (Linux, *BSD, macOS - termios और asyncio की Unix सिग्नल हैंडलिंग का उपयोग करता है)
  • httpx - pip install -r requirements.txt (या pip install httpx)
  • वैकल्पिक, उपस्थित होने पर स्वतः उपयोग होते हैं: uvloop (तेज़ इवेंट लूप), aiodns (-r के लिए नॉन-ब्लॉकिंग DNS), h2 (-2 के लिए HTTP/2), httpx[socks] / socksio (SOCKS प्रॉक्सी)

httpgrep एक एकल स्व-निहित स्क्रिप्ट है - बस ./httpgrep.py चलाएँ।

उपयोग

root@kitploit:~
$ httpgrep -H
    __    __  __
   / /_  / /_/ /_____  ____ _________  ____
  / __ \/ __/ __/ __ \/ __ `/ ___/ _ \/ __ \
 / / / / /_/ /_/ /_/ / /_/ / /  /  __/ /_/ /
/_/ /_/\__/\__/ .___/\__, /_/   \___/ .___/
             /_/    /____/         /_/

     --== [ by nullsecurity.net ] ==--

usage

  httpgrep -h <arg> -s <arg> [opts] | <misc>

target options

  -h <hosts|file>   - single host/url or host-/cidr-range or file containing
                      hosts or file containing URLs, e.g.: foobar.net,
                      192.168.0.1-192.168.0.254, 192.168.0.0/24, /tmp/hosts.txt
                      a comma-separated list of hosts also works, e.g.:
                      1.2.3.4,foo.net,10.0.0.0/24
                      NOTE: hosts can also contain ':<ports>' on cmdline or in
                      file, where <ports> is a single port, comma-list or
                      range, e.g.: foo.net:8080, foo.net:80,443, 10.0.0.1:1-1024
  -p <ports|file>   - port(s) to connect to: single port, comma-separated list,
                      range, or a file with one spec per line, e.g.: 80,
                      80,443,8080, 8000-8100, /tmp/ports.txt
                      (default: 80, or 443 when -t is given)
  -t                - force TLS/SSL on all ports. by default the scheme is
                      auto-detected per port (plain http, switching to TLS if
                      the port speaks it)
  -u <URI|file>     - URI or comma-separated URIs or file with URIs (one per
                      line) to search given strings in, e.g.: /foobar/,
                      /foo.html, /admin,/login, /tmp/paths.txt (default: /)
  -r                - show the reverse-dns (PTR) name of scanned IPv4s as a
                      label; the ip stays the scan target (no scope drift).
                      non-blocking with the aiodns package

http options

  -X <method>       - HTTP request method to use, any case (default: get).
                      use '?' to list available methods.
  -a <user:pass>    - http auth credentials (format: 'user:pass')
  -U <UA>           - set custom User-Agent (default: latest ms edge, windows)
  -A                - use random user-agent per request
  -R <headers>      - set custom headers (format: 'foo=bar;lol=lulz;...')
  -C <cookies>      - set cookies (format: 'foo=bar;lol=lulz;...')
  -F                - don't follow HTTP redirects
  -L <num>          - max redirects to follow (default: 10; ignored with -F)
  -E                - verify TLS/SSL certificates (default: no verification)
  -P <proxy>        - use proxy (format: '[http|https|socks4|socks5]://host:port')
                      (socks needs the 'httpx[socks]' / socksio package)
  -f <codes>        - only report responses with given HTTP status codes,
                      e.g.: '200', '200,301,302'
  -e <codes>        - exclude responses with given HTTP status codes,
                      e.g.: '404', '403,404,500'
  -2                - try HTTP/2 (ALPN-negotiated on TLS, falls back to 1.1;
                      plain http stays 1.1). needs the 'h2' package

search options

  -s <str|file>     - a single string/regex or multiple strings/regex in a file
                      to find in HTTP response bodies and headers (see -w),
                      e.g.: 'tomcat 8', '/tmp/igot0daysforthese.txt'
  -S <str|file>     - invert (grep -v): drop ALL matches of a response if this
                      string/regex (or file) appears anywhere in its body or
                      headers, e.g. to filter out dynamic error / 404 pages
  -w <where>        - where to search: headers, body, or headers,body
                      (default: headers,body)
  -b <bytes>        - num bytes of context to show from a body match
                      (default: 64)
  -m <size>         - max body to read + search; suffix b/kb/mb, no suffix = kb,
                      e.g.: 512, 1mb, 262144b (default: 256kb)
  -i                - use case-insensitive search
  -I                - use case-insensitive invert (for -S)

scan options

  -x <num>          - max concurrent connections (async; default: 300). raise
                      ulimit -n accordingly for very high values
  -c <seconds>      - per-host read timeout in seconds, also caps body read
                      time. the tcp preflight is capped at 2s regardless, so
                      filtered/dead hosts free their slot fast (default: 3.0)
  -G <seconds>      - global timeout: hard-stop the whole scan after N seconds
                      (safety net against any hang; default: none)
  -y <num>          - retry a failed probe up to <num> times (default: 0).
                      helps with flaky hosts at scale; keep it small
  -1                - once a host has a match, skip its not-yet-started probes
                      (best-effort; in-flight requests still finish, so under
                      high -x you may still see a few matches per host)
  -z <size>         - scan targets in random order within a memory-bounded
                      window of <size> ram (suffix b/kb/mb/gb), e.g.: -z 1gb.
                      keeps huge ranges/files from exhausting memory
  -Z <num>          - cap the -z window at <num> targets (default 2000000,
                      ~267mb at ~140 bytes each). more = wider mixing on huge
                      ranges, at the cost of ram and start-up buffering
  -W                - save/resume: on ctrl+c write progress to httpgrep.session;
                      rerun with -W to resume from it (else start fresh)
  -T <0|1>          - also probe the cert (v)hosts (CN + SAN) as extra requests
                      on top of the direct scan. 0 = via Host header on the
                      same ip (in-scope); 1 = ALSO by dns name/SNI (may leave
                      scope). needs TLS (https url, -t, or a *443 port).

output options

  -l <file>         - log found matches to <file>.<fmt> per chosen -O format
                      (e.g. -l out -O csv,jsonl => out.csv, out.jsonl)
  -O <formats>      - log file format(s), comma-list of: txt, csv, jsonl
                      (default: txt; use '?' to list). terminal output always
                      stays human-readable.
  -v                - verbose: print each url as it gets scanned
  -7                - escape non-ASCII in terminal output to \xNN, so a hostile
                      response body can't corrupt your terminal (logs stay raw)

misc options

  -H                - print help
  -V                - print version information

examples

  # grep for 'apache' in headers and body of a single host
  $ httpgrep -h foobar.net -s apache

  # scan a CIDR range on port 8080, search for 'tomcat' in body only
  $ httpgrep -h 192.168.0.0/24 -p 8080 -s tomcat -w body

  # scan a host across multiple ports and a port range for 'jenkins'
  $ httpgrep -h 192.168.0.10 -p 80,443,8080,8000-8100 -s jenkins -i

  # scan host list, search string file, log matches (-> /tmp/out.txt)
  $ httpgrep -h /tmp/hosts.txt -s /tmp/strings.txt -x 200 -l /tmp/out

  # grep for 'admin' case-insensitively across multiple URIs via TLS
  $ httpgrep -h foobar.net -t -u /admin,/login,/dashboard -s admin -i

  # scan IP range, reverse DNS, only report 200 responses
  $ httpgrep -h 10.0.0.1-10.0.0.254 -s 'powered by' -r -f 200

  # search headers only, don't follow redirects, verbose output
  $ httpgrep -h foobar.net -s 'X-Powered-By' -w headers -F -v

  # grep for 'admin', but drop dynamic error pages (invert, case-insensitive)
  $ httpgrep -h 192.168.0.0/24 -s admin -i -S 'error|not found' -I

  # route through proxy, custom UA, search for version strings
  $ httpgrep -h /tmp/hosts.txt -s 'nginx/1\.' -P http://127.0.0.1:8080 -U 'curl/8.0'

  # big resumable scan: ctrl+c saves state, rerun with -W to continue; also
  # cap the whole run at 1 hour as a hang safety net
  $ httpgrep -h 10.0.0.0/16 -p 80,443 -s admin -W -G 3600

आउटपुट

मिलान लाइव प्रिंट होते हैं, प्रति पंक्ति एक:

root@kitploit:~
[*] <url> | [vhost] | <status> | <type> | <match>
  • <url> - स्कैन किया गया URL (scheme://host:port/uri)।
  • <vhost> - -T के साथ उपस्थित (Host हेडर के माध्यम से आज़माया गया प्रमाणपत्र (v)होस्ट) या -r के साथ (स्कैन किए गए IP का PTR नाम); सीधे स्कैन के लिए खाली।
  • <status> - HTTP प्रतिक्रिया स्थिति कोड (रीडायरेक्ट के बाद)।
  • <type> - body या header।
  • <match> - body हिट: मिलान से एक छोटी repr'd विंडो (-b बाइट्स); header हिट: name: value।

टर्मिनल हमेशा यह मानव-पठनीय रूप दिखाता है। -l <base> के साथ वही मिलान प्रत्येक -O प्रारूप के लिए <base>.<fmt> पर मिरर होते हैं - txt (ये पंक्तियाँ), csv (हेडर के साथ url,vhost,status,type,match पंक्तियाँ), jsonl (प्रति मिलान एक JSON ऑब्जेक्ट)।

बहु-लक्ष्य स्कैन पर एक लाइव स्थिति पंक्ति दिखाई जाती है (tty पर नीचे पिन की गई, रीडायरेक्ट करने पर सादी पंक्तियाँ):

root@kitploit:~
[+] wait bitch, scanning: <targets> | <scanned>/<total> | <pct>% | <n> hits

<total> लक्ष्य गणना है (cidrs/रेंज की गणना की जाती है, विस्तार नहीं); <n> hits अब तक उत्सर्जित मिलान पंक्तियों की चल रही संख्या है।

लेखक

noptrix

नोट्स

  • जल्दबाज़ी में लिखा गया कोड
  • httpgrep पहले से पैकेज्ड है और BlackArch Linux के लिए उपलब्ध है
  • मेरी master-branches हमेशा स्थिर रहती हैं; dev-branches वर्तमान कार्य के लिए बनाई जाती हैं।
  • मेरा जो भी सार्वजनिक सामान आपको मिलता है, वह nullsecurity.net के माध्यम से आधिकारिक रूप से घोषित और प्रकाशित किया जाता है।

लाइसेंस

docs/LICENSE देखें।

अस्वीकरण

हम यहाँ स्पष्ट रूप से ज़ोर देते हैं कि nullsecurity.net पर पाई जाने वाली हैकिंग से संबंधित सामग्री केवल शैक्षिक उद्देश्यों के लिए है। हम किसी भी क्षति के लिए ज़िम्मेदार नहीं हैं। आप अपने स्वयं के कार्यों के लिए ज़िम्मेदार हैं।

टूल डाउनलोड करें