漏洞描述
Adobe ColdFusion 是美国 Adobe 公司的一款动态 Web 服务器产品,其运行的 CFML(ColdFusion Markup Language)是针对 Web 应用的一种程序设计语言。
Adobe ColdFusion 8、9 版本中存在一处目录穿越漏洞,可导致未授权的用户读取服务器任意文件。
一、复现过程
环境
一台攻击机(kali-2021)192.168.141.190
受害机(vulhub搭建的)192.168.141.199
一台用来下载的服务器(内网,如果有服务器更好)192.168.141.196(利用时让受害主机下载crontab文件,利用ubuntu的定时任务反弹shell)
复现
首先受害机启动环境,按照按照剧本访问对应的端口,使用nmap扫描一遍之后发现8500端口开放,使用浏览器访问
发现对应的版本在该漏洞范围内尝试用网上的poc进行文件读取后台管理员密码(根据网上为数不多资料作者推测管理员密码存在固定的位置-请大佬指正)
http://192.168.141.199:8500/CFIDE/administrator/enter.cfm?locale=../../../../../../../lib/password.properties%00en
访问后可以看到密码是使用加密的密码
password=D033E22AE348AEB5660FC2140AEC35850C4DA997
在这其实是作者整理了两个方案登录进后台
1.解密
判断出这是一串加密的字符串,首先想到是的测试解密,
带入登录即可
2.根据js找到加密逻辑
首先查看一下登陆的post包
可以看到其中cfadminPassword
能推断出输入的密码是首先通过js加密之后才传到服务端的,在这作者在浏览器中调出管理控制台查看Debugger部分可以看到当前网页的结构是一个cfm文件一个js,找到cfm中提交的表单部分以及password部分
可以看到密码在输入的时候没有进行加密而是在提交表单的时候调用了 hex_hmac_sha1(salt.value, hex_sha1(cfadminPassword.value))
js函数,首先是对cfadminPassword进行了一次sha1加密然后又出现了一个以salt为参数的加密参数有对cfadminPassword进行了一次加密,而在查看cfm文件