httpx is a fast and multi-purpose HTTP toolkit allows to run multiple probers using retryablehttp library, it is designed to maintain the result reliability with increased threads.

httpx

FeaturesInstallationUsageRunning httpxNotesJoin Discord

httpx is a fast and multi-purpose HTTP toolkit allow to run multiple probers using retryablehttp library, it is designed to maintain the result reliability with increased threads.

Features

httpx

  • Simple and modular code base making it easy to contribute.
  • Fast And fully configurable flags to probe mutiple elements.
  • Supports multiple HTTP based probings.
  • Smart auto fallback from https to http as default.
  • Supports hosts, URLs and CIDR as input.
  • Handles edge cases doing retries, backoffs etc for handling WAFs.

Supported probes:-

Probes Default check Probes Default check
URL true IP true
Title true CNAME true
Status Code true Raw HTTP false
Content Length true HTTP2 false
TLS Certificate true HTTP 1.1 Pipeline false
CSP Header true Virtual host false
Location Header true CDN false
Web Server true Path false
Web Socket true Ports false
Response Time true Request method false

Installation Instructions

httpx requires go1.14+ to install successfully. Run the following command to get the repo -

▶ GO111MODULE=on go get -v github.com/projectdiscovery/httpx/cmd/httpx

Usage

httpx -h

This will display help for the tool. Here are all the switches it supports.

👉 httpx help menu 👈
Usage of ./httpx:

  -H value
      Custom Header
  -allow value
      Allowlist ip/cidr
  -body string
      Request Body
  -cdn
      Check if domain's ip belongs to known CDN (akamai, cloudflare, ..)
  -cname
      Output first cname
  -content-length
      Extracts content length
  -content-type
      Extracts content-type
  -csp-probe
      Send HTTP probes on the extracted CSP domains
  -debug
      Debug mode
  -deny value
      Denylist ip/cidr
  -extract-regex string
      Extract Regex
  -fc string
      Filter status code
  -filter-regex string
      Filter Regex
  -filter-string string
      Filter String
  -fl string
      Filter content length
  -follow-host-redirects
      Only follow redirects on the same host
  -follow-redirects
      Follow Redirects
  -http-proxy string
      HTTP Proxy, eg http://127.0.0.1:8080
  -http2
      HTTP2 probe
  -include-chain
      Show Raw HTTP Chain In Output (-json only)
  -include-response
      Show Raw HTTP Response In Output (-json only)
  -ip
      Output target ip
  -json
      JSON Output
  -l string
      File containing domains
  -location
      Extracts location header
  -match-regex string
      Match Regex
  -match-string string
      Match string
  -max-response-body-size int
      Maximum response body size (default 2147483647)
  -mc string
      Match status code
  -method
      Output method
  -ml string
      Match content length
  -no-color
      No Color
  -no-fallback
      If HTTPS on port 443 is successful on default configuration, probes also port 80 for HTTP
  -o string
      File to write output to (optional)
  -path string
      Request path/file (example '/api')
  -paths string
      Command separated paths or file containing one path per line (example '/api/v1,/apiv2')
  -pipeline
      HTTP1.1 Pipeline
  -ports value
      ports range (nmap syntax: eg 1,2-10,11)
  -random-agent
      Use randomly selected HTTP User-Agent header value
  -request string
      File containing raw request
  -response-in-json
      Show Raw HTTP Response In Output (-json only) (deprecated)
  -response-time
      Output the response time
  -retries int
      Number of retries
  -silent
      Silent mode
  -sr
      Save response to file (default 'output')
  -srd string
      Save response directory (default "output")
  -stats
      Enable statistic on keypress (terminal may become unresponsive till the end)
  -status-code
      Extracts status code
  -store-chain
      Save chain to file (default 'output')
  -tech-detect
      Perform wappalyzer based technology detection
  -threads int
      Number of threads (default 50)
  -timeout int
      Timeout in seconds (default 5)
  -title
      Extracts title
  -tls-grab
      Perform TLS data grabbing
  -tls-probe
      Send HTTP probes on the extracted TLS domains
  -unsafe
      Send raw requests skipping golang normalization
  -verbose
      Verbose Mode
  -version
      Show version of httpx
  -vhost
      Check for VHOSTs
  -vhost-input
      Get a list of vhosts as input
  -web-server
      Extracts server header
  -websocket
      Prints out if the server exposes a websocket
  -x string
      Request Methods, use ALL to check all verbs ()

Running httpX

Running httpx with stdin

This will run the tool against all the hosts and subdomains in hosts.txt and returns URLs running HTTP webserver.

▶ cat hosts.txt | httpx 

    __    __  __       _  __
   / /_  / /_/ /_____ | |/ /
  / __ \/ __/ __/ __ \|   / 
 / / / / /_/ /_/ /_/ /   |  
/_/ /_/\__/\__/ .___/_/|_|   v1.0  
             /_/            

    projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.

https://mta-sts.managed.hackerone.com
https://mta-sts.hackerone.com
https://mta-sts.forwarding.hackerone.com
https://docs.hackerone.com
https://www.hackerone.com
https://resources.hackerone.com
https://api.hackerone.com
https://support.hackerone.com

Running httpx with file input

This will run the tool against all the hosts and subdomains in hosts.txt and returns URLs running HTTP webserver.

▶ httpx -l hosts.txt -silent

https://docs.hackerone.com
https://mta-sts.hackerone.com
https://mta-sts.managed.hackerone.com
https://mta-sts.forwarding.hackerone.com
https://www.hackerone.com
https://resources.hackerone.com
https://api.hackerone.com
https://support.hackerone.com

Running httpx with CIDR input

echo 173.0.84.0/24 | httpx -silent

https://173.0.84.29
https://173.0.84.43
https://173.0.84.31
https://173.0.84.44
https://173.0.84.12
https://173.0.84.4
https://173.0.84.36
https://173.0.84.45
https://173.0.84.14
https://173.0.84.25
https://173.0.84.46
https://173.0.84.24
https://173.0.84.32
https://173.0.84.9
https://173.0.84.13
https://173.0.84.6
https://173.0.84.16
https://173.0.84.34

Running httpx with subfinder

▶ subfinder -d hackerone.com | httpx -title -tech-detect -status-code -title -follow-redirects

    __    __  __       _  __
   / /_  / /_/ /_____ | |/ /
  / __ \/ __/ __/ __ \|   /
 / / / / /_/ /_/ /_/ /   |
/_/ /_/\__/\__/ .___/_/|_|
             /_/              v1.0.6

    projectdiscovery.io

Use with caution. You are responsible for your actions
Developers assume no liability and are not responsible for any misuse or damage.
https://mta-sts.managed.hackerone.com [404] [Page not found · GitHub Pages] [Varnish,GitHub Pages,Ruby on Rails]
https://mta-sts.hackerone.com [404] [Page not found · GitHub Pages] [Varnish,GitHub Pages,Ruby on Rails]
https://mta-sts.forwarding.hackerone.com [404] [Page not found · GitHub Pages] [GitHub Pages,Ruby on Rails,Varnish]
https://docs.hackerone.com [200] [HackerOne Platform Documentation] [Ruby on Rails,jsDelivr,Gatsby,React,webpack,Varnish,GitHub Pages]
https://support.hackerone.com [301,302,301,200] [HackerOne] [Cloudflare,Ruby on Rails,Ruby]
https://resources.hackerone.com [301,301,404] [Sorry, no Folders found.]

📋 Notes

  • As default, httpx checks for HTTPS probe and fall-back to HTTP only if HTTPS is not reachable.
  • For printing both HTTP/HTTPS results, no-fallback flag can be used.
  • Custom scheme for ports can be defined, for example -ports http:443,http:80,https:8443
  • vhost, http2, pipeline, ports, csp-probe, tls-probe and path are unique flag with different probes.
  • Unique flags should be used for specific use cases instead of running them as default with other flags.
  • When using json flag, all the information (default probes) included in the JSON output.

Thanks

httpx is made with 🖤 by the projectdiscovery team. Community contributions have made the project what it is. See the Thanks.md file for more details. Do also check out these similar awesome projects that may fit in your workflow:

Probing feature is inspired by @tomnomnom/httprobe work ❤️

Owner
ProjectDiscovery
Security Through Intelligent Automation
ProjectDiscovery
Comments
  • Improved httpx feature - favicon detection.

    Improved httpx feature - favicon detection.

    1. Current workflow
      • Request to url + /favicon.ico
      • Doesn't check if the faviconResp.data is html or it's image
    2. Implemented workflow
      • Request to url + /favicon.ico if failed, will scrape root path for link element with rel (icon or shortcut icon or mask-icon or apple-touch-icon)
      • Supports checking if the response content is actually an image

    Do let me know if I need to make any changes :)

  • [BUG] CIDR in combination with -ports

    [BUG] CIDR in combination with -ports

    To replicate the issue of missing valid host with CIDR input

    with prips:-

    > prips 1.1.1.0/24 | httpx -title -content-length -status-code -ports 80,443 -silent | grep 1.1.1.1:80
    
    http://1.1.1.1:80 [301] [186] [301 Moved Permanently]
    

    with httpx internal CIDR handler: -

    > echo 1.1.1.0/24 | httpx -title -content-length -status-code -ports 80,443 -silent | grep 1.1.1.1:80
    

    To replicate the duplication issue with CIDR input

    > echo 1.1.1.0/24 | httpx -title -content-length -status-code -ports 80,443 -silent | sort | grep http://1.1.1.24:80
    http://1.1.1.24:80 [403] [16] []
    
    echo 1.1.1.0/24 | httpx -title -content-length -status-code -ports 80,443 -silent | sort | grep http://1.1.1.24:80
    
    http://1.1.1.24:80 [403] [16] []
    http://1.1.1.24:80 [403] [16] []
    http://1.1.1.24:80 [403] [16] []
    

    I have opened ports 80 and 443 on 192.168.8.1

    echo 192.168.8.1 | ./httpx  -title -content-length -status-code -ports 80,443
    
        __    __  __       _  __
       / /_  / /_/ /_____ | |/ /
      / __ \/ __/ __/ __ \|   / 
     / / / / /_/ /_/ /_/ /   |  
    /_/ /_/\__/\__/ .___/_/|_|  
                 /_/              v1           
    
    		projectdiscovery.io
    
    [WRN] Use with caution. You are responsible for your actions
    [WRN] Developers assume no liability and are not responsible for any misuse or damage.
    https://192.168.8.1:443 [307] [13] []
    http://192.168.8.1:80 [307] [13] []
    

    But when I run CIDR scan, the httpx does not return any open port on 192.168.8.1

    echo 192.168.8.0/24 | ./httpx  -title -content-length -status-code -ports 80,443
    
        __    __  __       _  __
       / /_  / /_/ /_____ | |/ /
      / __ \/ __/ __/ __ \|   / 
     / / / / /_/ /_/ /_/ /   |  
    /_/ /_/\__/\__/ .___/_/|_|  
                 /_/              v1           
    
    		projectdiscovery.io
    
    [WRN] Use with caution. You are responsible for your actions
    [WRN] Developers assume no liability and are not responsible for any misuse or damage.
    
  • Add probe-all-ips feature

    Add probe-all-ips feature

    Added flag to support probe all ips #245.

    Example output: For default output, I just implicitly enable IP address output:

    $ echo hackerone.com | ./httpx -sc -scan-all-ips
    https://hackerone.com [302] [104.16.99.52]
    https://hackerone.com [302] [104.16.100.52]
    

    JSON (as described in the original issue):

    {
      "timestamp": "2021-10-23T19:10:52.740432132+03:00",
      "scheme": "https",
      "port": "443",
      "path": "/",
      "body-sha256": "bf697861898d0a7fabf4886f0eb238a440f45622e062ef40ac266e5575796347",
      "header-sha256": "883abfaf1ec8e7c9270389ceb45e0c4b8a16264c933174b93b14766b6f66c85c",
      "a": [
        "104.16.100.52",
        "104.16.99.52"
      ],
      "url": "https://hackerone.com:443",
      "input": "hackerone.com",
      "location": "https://www.hackerone.com/",
      "webserver": "cloudflare",
      "content-type": "text/html",
      "method": "GET",
      "host": "104.16.100.52",
      "content-length": 92,
      "status-code": 302,
      "csp": {
        "domains": [
          "a5s.hackerone-ext-content.com",
          "b5s.hackerone-ext-content.com",
          "errors.hackerone.net",
          "profile-photos.hackerone-user-content.com",
          "www.youtube-nocookie.com",
          "www.google-analytics.com",
          "cover-photos.hackerone-user-content.com",
          "hackathon-photos.hackerone-user-content.com",
          "hackerone-us-west-2-production-attachments.s3.us-west-2.amazonaws.com",
          "https://errors.hackerone.net/api/30/csp-report/?sentry_key=374aea95847f4040a69f9c8d49a3a59d"
        ]
      },
      "response-time": "963.997528ms",
      "failed": false
    }
    {
      "timestamp": "2021-10-23T19:10:52.774901606+03:00",
      "scheme": "https",
      "port": "443",
      "path": "/",
      "body-sha256": "bf697861898d0a7fabf4886f0eb238a440f45622e062ef40ac266e5575796347",
      "header-sha256": "e129249144cc96d0bcf0273eb03e42f002169966d76179ffbd5d359264e5ea35",
      "a": [
        "104.16.100.52",
        "104.16.99.52"
      ],
      "url": "https://hackerone.com:443",
      "input": "hackerone.com",
      "location": "https://www.hackerone.com/",
      "webserver": "cloudflare",
      "content-type": "text/html",
      "method": "GET",
      "host": "104.16.99.52",
      "content-length": 92,
      "status-code": 302,
      "csp": {
        "domains": [
          "profile-photos.hackerone-user-content.com",
          "https://errors.hackerone.net/api/30/csp-report/?sentry_key=374aea95847f4040a69f9c8d49a3a59d",
          "www.youtube-nocookie.com",
          "b5s.hackerone-ext-content.com",
          "www.google-analytics.com",
          "errors.hackerone.net",
          "cover-photos.hackerone-user-content.com",
          "hackathon-photos.hackerone-user-content.com",
          "hackerone-us-west-2-production-attachments.s3.us-west-2.amazonaws.com",
          "a5s.hackerone-ext-content.com"
        ]
      },
      "response-time": "1.005377776s",
      "failed": false
    }
    
  • Some 200 response urls returns 404 response in httpx

    Some 200 response urls returns 404 response in httpx

    httpx version:

    Tested version: v1.2.3, v1.2.0

    Current Behavior:

    Some urls return 404 http response for valid 200 response urls. Was able to reproduce this on twitter site.

    Expected Behavior:

    It should return 200 response.

    Steps To Reproduce:

    echo "https://twitter.com/twitter" | httpx -fr -sc 
    
    Response:
    https://twitter.com/twitter [302,404]  [https://mobile.twitter.com/twitter]
    

    Same command with redirected url return same response

    echo https://mobile.twitter.com/twitter | httpx -fr -sc
    
    https://mobile.twitter.com/twitter [404]
    
    --------
    
    echo "https://twitter.com/twitter" | httpx -fr -sc -x HEAD 
    
    https://twitter.com/twitter [302,404] [HEAD] [https://mobile.twitter.com/twitter]
    
    --------
    
    echo https://mobile.twitter.com/twitter | httpx -fr -sc -http2
    
    https://mobile.twitter.com/twitter [404] [http2]
    
    

    Curl returns 200 status code for this url

    curl -ik "https://mobile.twitter.com/twitter" -X HEAD
    
    HTTP/2 200
    

    Anything else:

  • Add default port for URL to solve automatic use of HTTP

    Add default port for URL to solve automatic use of HTTP

    The results are as expected

    echo "www.baidu.com"|httpx   -title -content-length -status-code #auto use https
    https://www.baidu.com [302] [161] [302 Found]
    
    echo "http://www.baidu.com:80"|httpx   -title -content-length -status-code #use  http
    http://www.baidu.com:80 [200] [300813] [百度一下,你就知道]
    

    Results did not meet expectations

    echo "http://www.baidu.com"|httpx   -title -content-length -status-code #auto jump https
    https://www.baidu.com [302] [161] [302 Found]
    

    Modified program

    echo "http://www.baidu.com"|httpx   -title -content-length -status-code #use http
    http://www.baidu.com:80 [200] [300813] [百度一下,你就知道]
    
  • cname probe not work

    cname probe not work

    In pr #108 seems that cname probe has been added, but when I try it locally it seems that not work,

    Use the test case in the original pr:

    https://www.hackerone.com
    https://api.hackerone.com
    https://mta-sts.hackerone.com
    https://mta-sts.managed.hackerone.com
    https://support.hackerone.com
    https://mta-sts.forwarding.hackerone.com
    https://docs.hackerone.com
    https://resources.hackerone.com
    
    ./httpx -l domains.txt -cname
    
        __    __  __       _  __
       / /_  / /_/ /_____ | |/ /
      / __ \/ __/ __/ __ \|   /
     / / / / /_/ /_/ /_/ /   |
    /_/ /_/\__/\__/ .___/_/|_|
                 /_/              v1.0.5
    
    		projectdiscovery.io
    
    Use with caution. You are responsible for your actions
    Developers assume no liability and are not responsible for any misuse or damage.
    https://mta-sts.forwarding.hackerone.com
    http://mta-sts.managed.hackerone.com
    http://mta-sts.hackerone.com
    http://api.hackerone.com
    http://docs.hackerone.com
    http://www.hackerone.com
    http://resources.hackerone.com
    http://support.hackerone.com
    

    When I dig into source code I find that in internal/runner/runner.go:

    dnsData, err := hp.Dialer.GetDNSData(domain)
    

    and in fast dialer GetDNSData function:

    		data, err = d.dnsclient.Resolve(hostname)
    		if err != nil && d.options.EnableFallback {
    			data, err = d.dnsclient.ResolveWithSyscall(hostname)
    		}
    		if err != nil {
    			return nil, err
    		}
    		if data == nil {
    			return nil, errors.New("could not resolve host")
    		}
    		b, _ := data.Marshal()
    		err = d.hm.Set(hostname, b)
    		if err != nil {
    			return nil, err
    		}
    		return data, nil
    

    It call retryabledns's Resolve function which only query for the A record:

    func (c *Client) Resolve(host string) (*DNSData, error) {
    	return c.Query(host, dns.TypeA)
    }
    

    So I think it is the root cause? I think the fastdialer need to add an function for A|CNAME type record.

  • Json parsing error while validating the json output in JSONLint

    Json parsing error while validating the json output in JSONLint

    while beautifying the output of json in any online website i encounter an error saying

    Error: Parse error on line 22: ...": "500.794337ms"} { "ips": ["13.227.1 ----------------------^ Expecting 'EOF', '}', ',', ']', got '{'

  • Add httprobe like prefer-https option to avoid duplicacy

    Add httprobe like prefer-https option to avoid duplicacy

    If a server is listening on both 80 and 443 ports and the response is identical, there should be an option to avoid saving http://target.com in output file. httprobe from tomnomnom has the cool feature. You may check it out for better understanding of what I am saying.

  • Installation issue with go modules

    Installation issue with go modules

    Description

    Hello Team

    Thank you very much for making this tool for us it's been very helpful for us as I was poking around some features and flag I noticed that there is an issue with the mc flag it actually renders an error when you try to match a 200 or 302 status code

    Test

    Let's say I want to check the js file that att.com has in the archive I came with this oneliner echo "att.com" | ~/go/bin/gau | grep '\.js$' | httpx -mc 200

    Expected behavior

    Checking results that has 200 status code and display

    Issue

    issue

    What I tried

    I tried to copy paste the same command you are using in the example section  httpx -status-code -mc 200,302

    Ended up with the same message issue2

    Config

    Ubuntu 18.04 Golang1.14 GO111MODULE=on httpx version 0.0.7

  • add TLS SNI and let HTTPS have priority

    add TLS SNI and let HTTPS have priority

    it's possible to let users specify TLS SNI like this one https://github.com/ffuf/ffuf/issues/440 and make HTTPS have the priority.

    Add a new -sni flag that will be used when establishing TLS connections:

    echo hackerone.com | httpx -sni www.hackerone.com
    
  • panic: runtime error: invalid memory address or nil pointer dereference

    panic: runtime error: invalid memory address or nil pointer dereference

    httpx version:[INF] Current Version: v1.1.4

    Current Behavior:httpx -l target.txt -path "///////../../../../../../etc/passwd"

    Expected Behavior:

    image

    Steps To Reproduce:

    Run 'httpx -l target.txt -path "///////../../../../../../etc/passwd"' See error image

    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x58 pc=0x9002d3]
    
    goroutine 14 [running]:
    github.com/projectdiscovery/httpx/runner.(*Runner).analyze(_, _, {_, _}, {_, _}, {_, _}, {0xc000eea780, 0x1b}, ...)
            /home/runner/work/httpx/httpx/runner/runner.go:874 +0xe93
    github.com/projectdiscovery/httpx/runner.(*Runner).process.func1({0xc000eea780, 0x1b}, {0x9fe1ef, 0x3}, {0xa042ab, 0xa})
            /home/runner/work/httpx/httpx/runner/runner.go:651 +0x125
    created by github.com/projectdiscovery/httpx/runner.(*Runner).process
            /home/runner/work/httpx/httpx/runner/runner.go:649 +0x965
    

    Anything else:

  • [Bug] -fc parameter isn't filtering responses

    [Bug] -fc parameter isn't filtering responses

    Run: httpx -l in.txt -path dir.txt -sc -fc 200,201,300,301,401,500,501,502,503 -o out.txt

    The output includes other status codes not listed in the -fc parameter (e.g. 400).

  • httpx 1.2.5 ignores -proxy when -unsafe used

    httpx 1.2.5 ignores -proxy when -unsafe used

    httpx version:

    1.2.5

    Current Behavior:

    httpx 1.2.5 ignores -proxy when -unsafe is used.

    Expected Behavior:

    httpx should respect -proxy regardless of -unsafe usage.

    Steps To Reproduce:

    • setup a proxy to listen on 127.0.0.1:3128
    • httpx -title -sc -td -unsafe -proxy http://127.0.0.1:3128 -u http://example.com
  • Add feature to exclude the same http response

    Add feature to exclude the same http response

    while scanning wide scope there are a lot of urls have the same base code so they have the same http response so it's time to let httpx exclude these urls based on comparing every http response with others

  • SNI override is being in cross domain redirects

    SNI override is being in cross domain redirects

    https://github.com/projectdiscovery/nuclei/issues/2284

    echo https://redirect-localhost.free.beeceptor.com| httpx -sni redirect-localhost.free.beeceptor.com -fr
    
  • Choose user agent type

    Choose user agent type

    Please describe your feature request:

    echo hackerone.com | httpx -user-agents mobile,headless,desktop-new-versions
    
    echo hackerone.com | httpx -user-agents desktop-old-versions
    

    Describe the use case of this feature:

    Use a random user agent, but in the chosen category. This feature should be added in nuclei too

  • Issue with blank location header with redirerct status code

    Issue with blank location header with redirerct status code

    Hello, v1.2.1

    echo "http://testphp.vulnweb.com/redir.php" | httpx -status-code -content-length -ip -cdn -title -tech-detect -random-agent

    nothing

    curl http://testphp.vulnweb.com/redir.php -v

    > GET /redir.php HTTP/1.1
    > Host: testphp.vulnweb.com
    > User-Agent: curl/7.82.0
    > Accept: */*
    >
    * Mark bundle as not supporting multiuse
    < HTTP/1.1 302 Moved Temporarily
    < Server: nginx/1.19.0
    < Date: Sat, 30 Apr 2022 04:51:09 GMT
    < Content-Type: text/html; charset=UTF-8
    < Transfer-Encoding: chunked
    < Connection: keep-alive
    < X-Powered-By: PHP/5.6.40-38+ubuntu20.04.1+deb.sury.org+1
    < Location:
    <
    * Connection #0 to host testphp.vulnweb.com left intact
    
Simple HTTP/HTTPS proxy - designed to be distributed as a self-contained binary that can be dropped in anywhere and run.

Simple Proxy This is a simple HTTP/HTTPS proxy - designed to be distributed as a self-contained binary that can be dropped in anywhere and run. Code b

Jan 7, 2023
kcp is a prototype of a Kubernetes API server that is not a Kubernetes cluster - a place to create, update, and maintain Kube-like APis with controllers above or without clusters.
kcp is a prototype of a Kubernetes API server that is not a Kubernetes cluster - a place to create, update, and maintain Kube-like APis with controllers above or without clusters.

kcp is a minimal Kubernetes API server How minimal exactly? kcp doesn't know about Pods or Nodes, let alone Deployments, Services, LoadBalancers, etc.

Jan 6, 2023
Lightweight rest api that allows users to run Powershell commands over HTTP.

Powershell Proxy Lightweight rest api that allows users to run Powershell commands over HTTP. Requests require a valid JWT and responses are returned

Mar 18, 2022
GoScan is a port-scanner made entirely in Go-lang. The purpose of the tool is to be fast, dynamic and simple so that a professional in the CyberSecurity area can make an optimized list of ports
GoScan is a port-scanner made entirely in Go-lang. The purpose of the tool is to be fast, dynamic and simple so that a professional in the CyberSecurity area can make an optimized list of ports

?? GoScan GoScan is a port-scanner made entirely in Go-lang. The purpose of the tool is to be fast, dynamic and simple so that a professional in the C

Jul 19, 2022
mt-multiserver-proxy is a reverse proxy designed for linking multiple Minetest servers together

mt-multiserver-proxy mt-multiserver-proxy is a reverse proxy designed for linking multiple Minetest servers together. It is the successor to multiserv

Nov 17, 2022
Use Consul to do service discovery, use gRPC +kafka to do message produce and consume. Use redis to store result.
Use  Consul to do service discovery, use gRPC +kafka to do message produce and consume. Use redis to store result.

目录 gRPC/consul/kafka简介 gRPC+kafka的Demo gRPC+kafka整体示意图 限流器 基于redis计数器生成唯一ID kafka生产消费 kafka生产消费示意图 本文kafka生产消费过程 基于pprof的性能分析Demo 使用pprof统计CPU/HEAP数据的

Jul 9, 2022
🍔 Product-storage service, work on gRPC. Client sends the URL to download products, and requests the result.

?? Product-storage service, work on gRPC. Client sends the URL to download products, and requests the result. The server transfer request to a third-party resource for .csv-file uploading and saves the products to own database.

Dec 16, 2021
A simulation to see what's the result among normal people、rich-second generation、hard-working people

A simulation to see what's the result of competion among normal people、rich-second generation and hard-working people. 假设: 一个社会集体中有部分富二代,部分努力的人,多数是普通人

Feb 20, 2022
Undirect - Get redirect link result with golang

Undirect Usage Request http://localhost:5000/?url=https%3A%2F%2Fokjk.co%2FSqOYfk

Jan 12, 2022
GraspleResultNotifier - Grasple result checker with golang

Grasple result checker Environment variables TELEGRAM_GRASPLE_BOT_TOKEN: The tok

Jan 25, 2022
Mackerel plugin to post bigquery's query result

mackerel-plugin-bigquery-query-result-importer Synopsis % mackerel-plugin-bigque

Feb 5, 2022
Chat app that allows you to group multiple channels into one view.

hashchat Backend service Getting Started Essential steps to get your backend service deployed A helloworld example has been shipped with the template

Dec 13, 2021
Socketlogger allows multiple processes to log to a shared log file between processes.
Socketlogger allows multiple processes to log to a shared log file between processes.

socketlogger socketlogger is a language agnostic logging utility designed to allow mulitple applications, running on one or multiple computers, to wri

Dec 7, 2021
TFTP and HTTP server specifically designed to serve iPXE ROMs and scripts.
TFTP and HTTP server specifically designed to serve iPXE ROMs and scripts.

pixie TFTP and HTTP server specifically designed to serve iPXE ROMs and scripts. pixie comes embedded with the following ROMs provided by the iPXE pro

Dec 31, 2022
Echo-server - An HTTP echo server designed for testing applications and proxies

echo-server An HTTP echo server designed for testing applications and proxies. R

Dec 20, 2022
Hetty is an HTTP toolkit for security research.
Hetty is an HTTP toolkit for security research.

Hetty is an HTTP toolkit for security research. It aims to become an open source alternative to commercial software like Burp Suite Pro, with powerful

Dec 27, 2022
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

fasthttp Fast HTTP implementation for Go. Currently fasthttp is successfully used by VertaMedia in a production serving up to 200K rps from more than

Jan 5, 2023
Jun 6, 2022
ipx provides general purpose extensions to golang's IP functions in net package

ipx ipx is a library which provides a set of extensions on go's standart IP functions in net package. compability with net package ipx is fully compat

May 24, 2021