34.21.197.23
Blocked Persistent Toolkit
Blocked since UTC, no end date. Our servers refuse it, web requests included, and it is in feed.txt.
Record
- Score
- 47/100each request counts half as much after 30 days
- Worst level
- Persistent
- Attack-shaped requests
- 678all time
- Active days
- 1UTC days
- First seen
- Last seen
- Servers hit
- 4
- Targets
- 3sites
- Times blocked
- 0by the evidence rules
First seen on UTC, most recently active on UTC.
Recorded 678 attack-shaped requests across 1 separate day.
Its traffic requested a .env file, hoping to find API keys or database credentials (346 requests); it also used a directory-traversal segment (literal or percent-encoded ../) in the request path to try to escape the web root (89); it also requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot (49); 42 requests matched no known pattern.
Seen by our edge and web sensors, against 3 of the sites we watch: neutralizatori.com, odor-ex.com and servbg.com.
Scored into the "Persistent" level, its highest so far. Badge: Toolkit.
Its busiest hour on record began UTC, with 323 requests.
Routed via AS396982 (Google LLC), a cloud network.
Surfaces: web-app. Attack types: fake crawlers, known exploits, injection, scanning, hunting for secrets. Seen by: edge, web.
Activity, last 90 days
Active on 1 of the last 90 UTC days. Current block: , with no end date.
Daily counts
| Day (UTC) | Requests |
|---|---|
| 636 |
- At least 323 requests a minute at its peak ( UTC; identical requests in the same second are stored once).
- Methods: GET 584, POST 37.
- The servers we watch answered: 403 371, 404 243 (totals only, from our web servers).
Evidence
Newest first, the latest 50 stored requests grouped into runs. Times are UTC. The user agent is shown as its family only.
| Time | Site | What happened | Request | User agent | Seen by |
|---|---|---|---|---|---|
| odor-ex.com | 2× swept a generic login/signup/account/dashboard route this site does not expose, consistent with an automated app-framework scanner | POST /api | declared bot | web | |
| odor-ex.com | 2× requested a .env file, hoping to find API keys or database credentials (2 distinct paths) | /odor-ex.com/.env.secret | none | web | |
| odor-ex.com | 5× triggered Cloudflare's managed rule for a Next.js server-action request-smuggling/RCE attempt (5 distinct paths) | POST /api/auth | declared bot | edge | |
| odor-ex.com | 3× requested a .env file, hoping to find API keys or database credentials (3 distinct paths) | GET /env/.env | declared bot | web | |
| odor-ex.com | made a request that matched no known pattern | GET /supabase/config.toml | declared bot | web | |
| odor-ex.com | requested .htaccess or .htpasswd, which can leak access rules or password hashes | /odor-ex.com/.htpasswd | none | web | |
| odor-ex.com | 2× requested docker-compose.yml, which often contains embedded passwords and connection strings (2 distinct paths) | /odor-ex.com/docker-compose.yml | none | web | |
| odor-ex.com | 2× requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot (2 distinct paths) | /odor-ex.com/credentials.json | none | web | |
| odor-ex.com | made a request that matched no known pattern | /odor-ex.com/.git | none | web | |
| odor-ex.com | requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot | /odor-ex.com/secrets.yml | none | web | |
| odor-ex.com | requested a .env file, hoping to find API keys or database credentials | /odor-ex.com/secrets.env | none | web | |
| odor-ex.com | requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot | /odor-ex.com/.git-credentials | none | web | |
| odor-ex.com | 3× made a request that matched no known pattern (3 distinct paths) | /odor-ex.com/.git | none | web | |
| odor-ex.com | requested a .env file, hoping to find API keys or database credentials | /odor-ex.com/.env.prod | none | web | |
| odor-ex.com | 2× made a request that matched no known pattern | /odor-ex.com/config | none | web | |
| odor-ex.com | 7× requested a .env file, hoping to find API keys or database credentials (7 distinct paths) | /odor-ex.com/.env.backup | none | web | |
| odor-ex.com | 2× requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot (2 distinct paths) | /odor-ex.com/firebase-credentials.json | none | web | |
| odor-ex.com | requested a .env file, hoping to find API keys or database credentials | /odor-ex.com/.env | none | web | |
| odor-ex.com | triggered Cloudflare's managed rule for a Next.js server-action request-smuggling/RCE attempt | POST /actions | declared bot | edge | |
| odor-ex.com | requested .htaccess or .htpasswd, which can leak access rules or password hashes | GET /.htpasswd | declared bot | web | |
| odor-ex.com | 2× requested docker-compose.yml, which often contains embedded passwords and connection strings (2 distinct paths) | GET /docker-compose.yml | declared bot | web | |
| odor-ex.com | 2× requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot (2 distinct paths) | GET /secrets.json | declared bot | web | |
| odor-ex.com | probed for an exposed .git directory to download the site's source history and config | GET /.git/HEAD | declared bot | web | |
| odor-ex.com | requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot | GET /secrets.yml | declared bot | web | |
| odor-ex.com | requested a .env file, hoping to find API keys or database credentials | GET /secrets.env | declared bot | web | |
| odor-ex.com | requested a common cloud/app secrets or credentials filename (AWS, GCP, Firebase, Kubernetes service-account token, SSH, master key) from a wordlist, hoping one was left in the webroot | GET /.git-credentials | declared bot | web | |
| odor-ex.com | requested an AWS credentials file left in a web-accessible path by mistake | GET /.aws/credentials | declared bot | web | |
| odor-ex.com | requested a .env file, hoping to find API keys or database credentials | GET /core/.env | declared bot | web | |
Network
- ASN
- AS396982 Google LLC
- Network type
- cloud
- Reverse DNS
23.197.21.34.bc.googleusercontent.com- Country
- Singapore SG
- Flags
- cloud range (GCP)
- Abuse contact
- found in the registry
- Checked
Your verdict
What readers make of this address. Verdicts are opinions of signed-in Academy members. They never change blocking or reporting.
Sign in with your free Academy account to cast a verdict. Sign in
No verdicts yet.