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
w48crash — Codice PoC per la vulnerabilità in webmod v0.48. Scritto originariamente nel 2007, a cui è stato assegnato CVE-2007-1260. | Kitploit
Strumenti/GitHubGitHub/thecybermind/w48crash
Analisi delle VulnerabilitàExploitShellcodePenetration TestingStrumento di Accesso RemotoBinary Exploitation
GitHubthecybermind/w48crash

w48crash

Codice PoC per la vulnerabilità in webmod v0.48. Scritto originariamente nel 2007, a cui è stato assegnato CVE-2007-1260.

Vedi Repository
11 anno faNon ancora revisionato

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

Overflow del buffer dello stack in WebMod CVE-2007-1260

di cybermind (Kevin Masterson)
[email protected]

Sito di WebMod (archiviato): https://web.archive.org/web/20080517044559/http://djeyl.net/w.php

Versioni vulnerabili:
0.48, sia Win32 che Linux. Le versioni precedenti potrebbero essere vulnerabili. Questo dovrebbe funzionare con qualsiasi versione di HLDS.

Tipo di vulnerabilità:
DoS, esecuzione remota di codice con l'utente con cui HLDS è in esecuzione.

Descrizione: Quando riceve una richiesta HTTP POST, alloca 11 byte sullo stack per memorizzare il valore di Content-Length, ma scrive in quel buffer finché non riceve un newline o un terminatore null. Dopo che la stringa Content-Length raggiunge i 158308 byte, inizia a sovrascrivere l'EIP. Questo numero potrebbe essere leggermente diverso su Linux a causa del padding. Il tuo shellcode non deve contenere 0x00, 0x0A, o 0x0D altrimenti smetterà di leggere i dati dal socket.

Questo potrebbe aiutare a eseguire il tuo shellcode:

  • Per Win32:
    C'è un "FF E4" (jmp esp) in w_mm.dll v0.48 all'indirizzo 0x67E03C5B
  • Per Linux:
    C'è un "FF E4" (jmp esp) in metamod_i386.so v1.19 all'offset 0x0008835C

Codice proof-of-concept:
w48crash.c
Nota: lo "shellcode" usato nel PoC è hardcoded specificamente per funzionare con un server in esecuzione su Win2K SP4/kernel32.dll/user32.dll v5.0.2195.6688. L'overflow del buffer effettivo funzionerà comunque così com'è su qualsiasi versione di Windows. Per testarlo, puoi impostare la variabile globale "our_eip" a 0xFFFFFFFF per causare semplicemente un crash.

Causa/Correzione:
Il codice problematico si trova nelle righe 542-552 di server.cpp:

root@kitploit:~
542        char clbuf[11];
543
544        for(i=0;(size_t)i<strlen(input)-17;i++)
545        {
546            if(!strnicmp(input+i,"\nContent-Length: ",17))
547            {
548 LOG_DBG_SERVER(("Content-length spotted"));
549                i+=17;
550                for(j=0;input[i]!='\n'&&input;[i];i++,j++)
551                    clbuf[j]=input[i];
552                clbuf[j]='\0';

Il buffer, clbuf, allocato alla riga 542, viene scritto con il ciclo alle righe 550-551, e poi terminato con null. La correzione consiste nel sostituire la riga 550 con:

root@kitploit:~
550                for(j=0;input[i]!='\n'&&input[i]&&j<10;i++,j++)
Scarica lo strumento