Zpět na domů

Fuzzing útoky: rozbor Nginx logů 2026

Rozbor skutečného fuzzingového útoku na Nginx server: 20 000 požadavků, 12 vektorů od .env do POST-floodu. Analýza nástrojů Nuclei/ffuf a ochranných opatření — rate limiting, směrování metod, catch-all. Praktická doporučení pro highload infrastrukturu.

12 vektorů fuzzingu z 20k Nginx logů 2026
Advertisement 728x90

Fuzzingové útoky 2026: analýza 12 vektorů z 20 000 řádků Nginx logů

Automatizovaný fuzzingový skener za 5 minut zasypal server s Nginx více než 20 000 požadavky. Dvě IP adresy ze stejné podsítě (185.x.x.52, 185.x.x.38) používaly User-Agent curl/8.7.1. Pravděpodobné nástroje: Nuclei s vlastními šablonami nebo ffuf/gobuster se seznamem slov z GitHubu. Útok sledoval parabolu: start s 100 rps, tlak na limity, eskalace na druhou IP, doznívání s neplatnými cestami.

Skener začal soubory .env, přešel k ladícím skriptům, LFI/RCE, CI/CD konfiguracím a POST záplavě. Všechny požadavky byly zablokovány základním nastavením Nginx: omezení rychlosti, směrování metod, catch-all pro SPA.

Top 12 vektorů skenování

Analýza logů odhalila charakteristické vzorce. Zde jsou klíčové příklady s reálnými požadavky:

Google AdInline article slot
  • Lov na .env: /.env.staging, /.env.local, /api/.env. Cíl — DB klíče, AWS tokeny.
{"time_local":"16/Mar/2026:17:19:51 +0000","remote_addr":"185.x.x.52","request_method":"GET","request_uri":"/.env.staging","status":"404","body_bytes_sent":"53","http_user_agent":"curl/8.7.1"}
  • Ladění serveru: /admin/admin_phpinfo.php4, phpinfo.php. Průzkum verzí a cest pro LFI.
  • Yii2/Laravel ladění: /debug/default/view?panel=config — pokus o únik konfigurace s hesly.
  • GitHub tutoriály: /07-accessing-data/begin/vue-heroes/.env — hledání kopírovaného kódu z kurzů.
  • NPM testovací data: /babel-plugin-dotenv/test/fixtures/dev-env/.env — testy ve vendor.
  • LFI v Grafana: /login?redirectTo=%2Fpms%3Fmodule%3Dlogging%26file_name%3D..%2F..%2F..%2F..%2F..%2F..%2F~%2F.aws%2Fcredentials (status 429).
  • RCE injection: /admin/config?cmd=cat%20/root/.aws/credentials.
  • SSH klíče: /.ssh/id_rsa.
  • CI/CD: /.gitlab-ci.yml, sendgrid.env.
  • Next.js artefakty: /_next/static/chunks/app/error.js pro source maps.
  • POST záplava: /api/files/upload (status 405).
  • Nesmysly: /config.json.bak.1.

Ochranné mechanismy na úrovni Nginx

Server zvládl zátěž díky přísné konfiguraci. Rozbor funkčních postupů:

  • Omezení rychlosti: limit_req zone=grafana_login_ip burst=5 nodelay; na přihlašovací formuláře a API. LFI požadavky vrátily 429, čímž ušetřily CPU.
  • Omezení metod: Zákaz POST na nepodporovaných koncových bodech — 405 Method Not Allowed. Požadavky se nedostanou k aplikačnímu serveru.
  • Catch-all směrování: try_files $uri $uri/ /index.html; vrátí SPA stránku s 200 místo 404. Bot stáhl 40+ KB HTML místo konfiguračních souborů.
  • Kontrola SNI: 421 Misdirected Request na HTTP/2 s nesprávným Host — zpomaluje multiplexované skenery.

Analýza dynamiky útoku

{"time_local":"16/Mar/2026:17:19:51 +0000","remote_addr":"185.x.x.52","request_method":"GET","request_uri":"/config.php","status":"200","body_bytes_sent":"40414","http_user_agent":"curl/8.7.1"}

Bot interpretoval 200 jako úspěch, ale dostal nesmysly. Takové triky dezorientují parsery generátorů seznamů slov.

Fuzzing se vyvíjí: seznamy slov mutují z GitHubu, NPM, tutoriálů. Skenery se přizpůsobují limitům, ale základní hygiena (bez .git, testů) + Nginx filtry udržují obranu.

Google AdInline article slot

Co je důležité:

  • Fuzzing 2026 se zaměřuje na .env, LFI/RCE, CI/CD, kopírovaný kód z GitHubu.
  • 20k požadavků/5 min — norma pro Nuclei/ffuf; rate limit burst=5 blokuje.
  • Catch-all s 200 OK + velká odpověď mate boty.
  • Směrování metod (405) a SNI (421) minimalizují zátěž backendu.
  • Pravidelný audit logů odhaluje nové vzorce seznamů slov.

— Editorial Team

Advertisement 728x90

Číst dál