Apache Flink
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
Apache Flink jobmanager/logs 目录穿越漏洞复现
打开装载有vulhub的靶机ubuntu,以及攻击机kali,靶机进入vulhub文件夹,输入
cd flink/CVE-2020-17519/
sudo docker-compose up -d
sudo docker-compose ps
然后就可以看到靶场所在的端口地址啦,攻击机浏览器中输入URL:http://靶机IP:8081访问页面,还是老规矩胡乱看一波,每个页面都看看是干什么滴!f12查看网络的每一个数据包请求,这时会发现,在Job Manger中,查看他的Log List中的文件时,他的文件名称是直接连接在Log ListURL后面的,而且他还不会将这个文件名称的URL进行加密等操作,直接放到URL后面进行访问,诶我这么说可能不太明白,就直接看图吧
说明这里就会存在有目录遍历语句,那么我们就可以在jobmanager/logs中写入特定的URL来达到我们的恶意访问,从而造成隐私泄露,双击数据包logs,打开bursuite进行抓包,在URL中输入 (两个点而已的,但是这个编辑器输入的是两个点却显示三个点,下同)
jobmanager/logs/%2f…%2f…%2fetc%2f…%2fpasswd //这是“…/…/…/etc/passwd”的URL编码
发现返回了Unable to load requested file /jobmanager/logs//…/…/etc/…/passwd,我们这条语句就是让logs界面不停地访问他的根目录一直迭代访问到文件etc/passwd,这个错误的返回就是说明我们没有成功跳出当前web目录,说明他存在有URL检查,拦截了我们的访问,那么我们可以在进行一次编码,来一个编码的二次方。因为他的检查一般就是检查URL中有无非法字符,他有可能就是将%2F判定成了非法字符给过滤掉了,那么我们将%也进行编码,让他认不出来就行了
…%252f…%252f…%252fetc%252fpasswd //这是“…/…/…/etc/passwd”两次循环URL编码
这时候发现返回This file does not exist in JobManager log dir,告诉我们请求错误,你要找的文件不在这,所以我们就需要继续在URL中添加%252f,一直添加到他成功访问到文件就行,或者是直接加一长串,那肯定就能访问到了。
版权归原作者 Tauil 所有, 如有侵权,请联系我们删除。