小风福利公众号
最新文章
热门文章
文章详情
帆软(FineReport)V9任意文件覆盖漏洞
日期:2021/5/25 17:51:58
漏洞简介
该漏洞是在近期HVV中被披露的,由于在初始化svg
文件时,未对传入的参数做限制,导致可以对已存在的文件覆盖写入数据,从而通过将木马写入jsp文件中获取服务器权限。
影响范围
- WebReport V9
# 漏洞分析
fr-chart-9.0.jar
包中com.fr.chart.web/ChartSvgInitService
类传递op
参数的值svginit
:
漏洞主要出现在fr-chart-9.0.jar
包中com.fr.chart.web/ChartSaveSvgAction
类,通过cmd
参数传递design_save_svg
命令,利用filePath
参数传递需要初始化的svg
文件,将filePath
参数传入的字符串中chartmapsvg
及后边的所有字符串拼接到WebReport
目录下“WEB-INF/assets/”
之后,如果生成的字符串中包含.svg就会创建该文件,然后将var7
的内容写入创建的文件。如果不包含.svg就会递归创建该目录,即传入的是jsp等非svg
文件就会创建目录无法写入数据,但如果是存在的jsp文件,就可以覆盖文件内容。整个过程直接进行字符串拼接,未过滤“../”
因此可以利用路径穿越漏洞在任意可写位置创建文件或覆盖jsp文件内容。
跟踪getInputStream
方法可见,通过__CONTENT__
参数传递文件内容即可:
# 漏洞利用
由于WebReport V9在安装之后在WebReport目录下存在update.jsp
和update1.jsp
,因此可以构造payload直接覆盖这两个文件的内容,从而GetShell。构造如下Payload覆盖update.jsp文件内容:
访问update.jsp,成功覆盖内容:
将文件内容替换为冰蝎木马,需要将双引号转义:
通过冰蝎成功连接服务器:
# 修复方法
严格过滤filePath参数的值,或使用路径和文件后缀白名单,删除默认update.jsp和update1.jsp页面,升级FineReport到最新版。
# 批量漏洞检测工具
https://github.com/NHPT/WebReportV9Exp/
上一文章:记一次艰难的溯源故事(对不起学长)
下一文章:Vulnstack内网靶场渗透记录
相关推荐
- 11-13华为路由器漏洞CVE-2017-17215复现分析
- 10-23谈谈AMF网站的渗透测试
- 05-13前端简历容易犯的7个失误(前端简历怎么写)
- 10-29通达OA任意文件删除
- 05-13浅谈SESSION_UPLOAD_PROGRESS的利用
- 05-12图片压缩的基本原理(图像压缩过程)
- 11-17从0到tfp0第一部分:基础知识
- 05-28利用HOSTS碰撞突破边界
- 05-12开放封闭原则的含义(不改代码怎么写新功能)
- 05-26.net反序列化之XmlSerializer
- 10-21CVE-2020-9496ApacheOfbizXMLRPCRCE漏洞分析
- 05-12频繁GC导致CPU飙高问题解决方法
- 10-21Spring反射性文件下载漏洞(CVE-2020-5421)分
- 08-24cf开学季,领黑钻