记录一下,下次碰到可以用
事情的起因是看到了安全客上安全狗海青实验室的一篇文章
https://www.anquanke.com/post/id/188788
文章中有些点写的不是很清楚,复现的时候踩了坑,重新记录一下过程。
漏洞的成因和条件:
1.需要管理员权限登录后台
2.虽然能上传任意文件,但在JspDispatcherFilter.java限制了对jsp文件的访问
3.后台还可以上传zip文件,上传后会自动解压,问题出现在WebFileUploadsController.java里的unzip方法,调用了下层方法却没有进行文件名检查,导致目录穿透。
4.上传的文件默认会在tomcat目录\webapps\ROOT\uploads\1\下,但构造压缩包可以使上传的文件穿到\webapps下,不会受JspDispatcherFilter的约束
5.因为无法直接访问\webapps里的jsp,所以需要上传包含马的a.war包,解压到webapps里从而部署后门到文件夹a中
这里用冰蝎马生产war,把shell.jsp和jar.exe放至同一目录下
1 | jar.exe cf shell.war * |
6.原文中使用好压创建一个恶意压缩包,再把后门war包拖入,这里有个坑。我使用的bandzip会把../../../解析成__ / __ / __ /,直接拖war包就失败了,所以选择脚本写入
1 | import zipfile |
7.上传,解析成功