Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/projectdiscovery/chaos-client

Go client to communicate with Chaos DB API.
https://github.com/projectdiscovery/chaos-client

cli

Last synced: 6 days ago
JSON representation

Go client to communicate with Chaos DB API.

Awesome Lists containing this project

README

        


Chaos Client


Go client to communicate with Chaos dataset API.









English β€’
δΈ­ζ–‡

## Installation

```bash
go install -v github.com/projectdiscovery/chaos-client/cmd/chaos@latest
```

## Usage

```bash
chaos -h
```

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

```console
-key string projectdiscovery cloud (pdcp) api key
-d string domain to search for subdomains
-count show statistics for the specified domain
-silent make the output silent
-o string file to write output to (optional)
-dL string file containing domains to search for subdomains (optional)
-json print output as json
-version show version of chaos
-v, -verbose verbose mode
-up, -update update chaos to latest version
-duc, -disable-update-check disable automatic chaos update check
```

You can also set the API key as an environment variable in your bash profile.

```bash
export PDCP_API_KEY=xxxxx
```

### How to avail `PDCP_API_KEY`

You can get your API key by either signing up or logging in at [cloud.projectdiscovery.io](https://cloud.projectdiscovery.io?ref=api_key).

## Running chaos

In order to get subdomains for a domain, use the following command.

```bash
chaos -d uber.com -silent

restaurants.uber.com
testcdn.uber.com
approvalservice.uber.com
zoom-logs.uber.com
eastwood.uber.com
meh.uber.com
webview.uber.com
kiosk-api.uber.com
utmbeta-staging.uber.com
getmatched-staging.uber.com
logs.uber.com
dca1.cfe.uber.com
cn-staging.uber.com
frontends-primary.uber.com
eng.uber.com
guest.uber.com
kiosk-home-staging.uber.com
```

πŸ’‘ Notes
-----

- **The API is rate-limited to 60 request / min / ip**
- Chaos API **only** supports domain name to query.

## Chaos as a library
`Chaos` can be utilized as a library for subdomain enumeration by instantiating the `Options` struct and populating it with the same options that would be specified via CLI.

### Example
```go
package main

import (
"os"
"github.com/projectdiscovery/chaos-client/internal/runner"
"github.com/projectdiscovery/chaos-client/pkg/chaos"
)

func main() {
var results []chaos.Result
opts := &runner.Options{
Domain: "projectdiscovery.io",
APIKey: os.Getenv("PDCP_API_KEY"),
OnResult: func(result interface{}) {
if val, ok := result.(chaos.Result); !ok {
results = append(results, val)
}
},
}

runner.RunEnumeration(opts)
}

```
πŸ’‘ Note

To run the program, you need to set the `PDCP_API_KEY` environment variable to your Chaos API key.

πŸ‘¨β€πŸ’» Community
-----

You are welcomed to join our [Discord Community](https://discord.gg/projectdiscovery). You can also follow us on [Twitter](https://twitter.com/pdchaos) to keep up with everything related to chaos project.

Thanks again for your contribution and keeping the community vibrant. :heart: