Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2018-18912 — Buffer overflow basato su SEH in Easy File Sharing Web Server 7.2 che dimostra come un parametro autenticato di una richiesta HTTP POST possa corrompere la catena degli exception handler. | Kitploit
Strumenti/GitHubGitHub/themalwareguardian/cve-2018-18912
Analisi delle VulnerabilitàExploitReverse EngineeringShellcodeSfruttamento di Applicazioni WebDebuggerApprendimento e FormazioneSviluppo PayloadBinary Exploitation

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHubthemalwareguardian/cve-2018-18912

CVE-2018-18912

Buffer overflow basato su SEH in Easy File Sharing Web Server 7.2 che dimostra come un parametro autenticato di una richiesta HTTP POST possa corrompere la catena degli exception handler.

Vedi Repository
15 mesi faNon ancora revisionato

🐞 CVE-2018-18912: Easy File Sharing Web Server 7.2 - Overflow del buffer basato su stack (SEH)

Overflow del buffer basato su SEH in Easy File Sharing Web Server 7.2 che dimostra come un parametro HTTP POST autenticato possa corrompere la catena dei gestori di eccezioni.




📑 Indice dei contenuti

  • Perché esiste questo repository
  • Perché questa vulnerabilità è interessante
  • Contesto e software interessato
  • Sulla vulnerabilità
  • Come innescare il crash
  • Sfruttamento



🎓 Perché esiste questo repository

Questo repository fa parte del materiale che utilizzo quando insegno lo sfruttamento delle corruzioni di memoria (oltre al mio lavoro regolare, insegno anche in diversi corsi di cybersecurity dove aiuto a formare la prossima generazione di reverse engineer).

CVE-2018-18912 è il caso che uso per fare il salto dalla sovrascrittura classica di EIP allo sfruttamento basato su SEH. Una volta che gli studenti capiscono come funziona la sovrascrittura diretta dell'indirizzo di ritorno, il passo successivo è capire cosa succede quando lo stack è così corrotto che il programma genera un'eccezione prima di ritornare, e come quella catena di gestori di eccezioni diventi la superficie d'attacco alternativa. Questa CVE dimostra chiaramente questa transizione: l'overflow è abbastanza profondo da raggiungere la catena SEH, e il percorso di sfruttamento segue la classica tecnica POP POP RETN che ogni sviluppatore di exploit deve comprendere. Il bypass facoltativo del DEP tramite ROP è lasciato come estensione per gli studenti che vogliono andare oltre: lo stesso overflow, una diversa strategia di gadget, un problema molto più difficile.




💡 Perché questa vulnerabilità è interessante

Questa vulnerabilità interessa Easy File Sharing Web Server 7.2, un'applicazione leggera di web server per Windows ampiamente utilizzata per la semplice condivisione di file. Il software è stato scritto senza tenere conto delle mitigazioni di sicurezza moderne. Ciò che rende questo caso particolarmente interessante dal punto di vista didattico è la combinazione di fattori coinvolti:

  • L'autenticazione è richiesta, ma solo a un livello di base. Questo modella uno scenario in cui un attaccante ha ottenuto delle credenziali, cosa comune nella post-exploitation del mondo reale.
  • L'overflow è basato su SEH. Il crash non sovrascrive direttamente l'indirizzo di ritorno. Invece, corrompe la catena dello Structured Exception Handler sullo stack, richiedendo una tecnica di sfruttamento diversa.
  • L'endpoint vulnerabile è una richiesta POST. Facile da riprodurre con i normali strumenti HTTP e familiare a chiunque abbia lavorato con applicazioni web.
  • Il bypass del DEP è facoltativo. L'exploit funziona con un approccio diretto SEH + salto breve + shellcode su sistemi in cui il DEP è disattivato. Se il DEP è attivo, lo stesso overflow può essere esteso con una catena ROP che utilizza gadget da ImageLoad.dll per chiamare VirtualProtect prima di trasferire il controllo allo shellcode.

Questa combinazione rende CVE-2018-18912 un caso eccellente per insegnare tecniche di sviluppo exploit oltre le basi.




🔍 Contesto e software interessato

Easy File Sharing Web Server 7.2 è un'applicazione Windows che consente agli utenti di condividere file tramite HTTP. Include funzionalità come l'esplorazione dei file, l'autenticazione degli utenti e un sistema di forum integrato.

La funzionalità del forum accetta richieste POST per creare nuove discussioni. Uno dei campi del modulo gestiti da questo endpoint è il parametro author. Internamente, l'applicazione copia questo valore controllato dall'utente in un buffer dello stack di dimensioni fisse senza validarne la lunghezza.

Scarica lo strumento

La vulnerabilità è stata scoperta e segnalata nel 2018. Il PoC originale è stato pubblicato poco dopo, dimostrando sia il crash che una catena di exploit funzionante, inclusi i gadget ROP del modulo ImageLoad.dll incluso nel pacchetto.

Dettagli tecnici principali:

  • Tipo di vulnerabilità: Overflow del buffer basato su stack (SEH)
  • Versione interessata: Easy File Sharing Web Server 7.2
  • Endpoint interessato: POST /forum.ghp
  • Parametro vulnerabile: author
  • Impatto: Esecuzione di codice in remoto



⚠️ Sulla vulnerabilità

Easy File Sharing Web Server elabora le richieste HTTP POST dirette a /forum.ghp quando un utente crea una nuova discussione nel forum. Uno dei parametri accettati è author, che viene copiato in un buffer locale dello stack senza alcun controllo di lunghezza.

Quando si esegue il reversing del binario, si può osservare che l'handler per questo campo del modulo utilizza un buffer di dimensioni fisse e un'operazione di copia non sicura. Una versione semplificata della logica vulnerabile è la seguente:

root@kitploit:~
char author_buffer[64];

strcpy(author_buffer, user_input);

Poiché il buffer di destinazione ha una dimensione fissa e la lunghezza dell'input non viene validata, l'invio di una stringa sufficientemente lunga nel campo author fa sì che la copia scriva oltre la fine del buffer.

Con l'aumentare dei dati scritti, la struttura dello stack si corrompe. A differenza di una semplice sovrascrittura dell'indirizzo di ritorno, l'overflow raggiunge la catena dello Structured Exception Handler (SEH) memorizzata sullo stack. Quando viene generata un'eccezione a causa dello stack corrotto, il sistema operativo percorre la catena SEH e trasferisce il controllo all'indirizzo dell'handler controllato dall'attaccante.

Il flusso di sfruttamento segue quindi la tecnica di sovrascrittura SEH:

  1. Un input lungo sovrascrive lo stack, inclusi i puntatori nSEH e SEH.
  2. Viene generata un'eccezione a causa della corruzione della memoria.
  3. Il sistema operativo invoca l'indirizzo dell'handler sovrascritto.
  4. Un gadget POP POP RETN viene utilizzato per trasferire l'esecuzione all'area nSEH.
  5. Un salto breve in avanti salta oltre il record SEH e reindirizza l'esecuzione all'area dello shellcode.
  6. Lo shellcode viene eseguito.

Ciò rende la vulnerabilità più complessa da sfruttare rispetto a una semplice sovrascrittura di EIP, ma anche più rappresentativa degli scenari del mondo reale.




💥 Come innescare il crash

Il crash può essere riprodotto inviando una stringa lunga nel parametro author di una richiesta POST a /forum.ghp dopo aver effettuato l'autenticazione con credenziali valide. Esempio utilizzando Python:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 500

request = (
	b"POST /forum.ghp?forumid=1 HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Content-Type: application/x-www-form-urlencoded\r\n"
	b"Cookie: UserID=test; PassWD=test; SESSIONID=1234\r\n"
	b"Connection: close\r\n"
	b"\r\n"
	b"author=" + payload + b"&passwd=test&title=test&content=test&Submit=Submit\r\n"
)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

Quando viene eseguito sotto un debugger, il crash mostra una catena SEH corrotta e una violazione di accesso, confermando che i dati controllati dall'utente hanno sovrascritto il puntatore al gestore di eccezioni.




💣 Sfruttamento

L'obiettivo di questo repository non è solo dimostrare il crash, ma anche guidare attraverso l'intero processo di sfruttamento passo dopo passo, seguendo la metodologia utilizzata nello sviluppo di exploit reali basati su SEH.

Per mantenere pulito il README principale, le note dettagliate sullo sfruttamento, gli script e i passaggi del debugger sono inseriti nella cartella Vulnerability 📂 di questo repository.

Qui troverai il flusso di lavoro completo utilizzato per sfruttare questa CVE, tra cui:

  • Fuzzing del parametro author per identificare il crash.
  • Scoperta dell'offset per individuare la posizione esatta di nSEH e SEH nello stack.
  • Analisi dei caratteri cattivi per identificare i byte che corrompono il payload.
  • Sovrascrittura della catena SEH utilizzando un gadget POP POP RETN da un modulo caricato.
  • Posizionamento ed esecuzione dello shellcode.