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:
- 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.jspro 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.
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
Zatím žádné komentáře.