jspxcms SSRF+XSS分析复现过程

admin 2022年1月5日13:52:53评论525 views字数 1081阅读3分36秒阅读模式

jspxcms SSRF+XSS分析复现过程

扫一扫关注公众号,长期致力于安全研究jspxcms SSRF+XSS分析复现过程

前言:目前该漏洞已经修复,实验环境为9.0.0老版本



0x01 流程分析

该漏洞位于UploadControllerAbstract.java文件中的ueditorCatchImage方法内。经过往上追溯,在Controller层中,当action=catchimage时,就会进入ueditorCatchImage方法

jspxcms SSRF+XSS分析复现过程

进入到ueditorCatchImage方法后,可以发现调用了其父类的ueditorCatchImage方法。

jspxcms SSRF+XSS分析复现过程

而该Controller就继承于UploadControllerAbstract

jspxcms SSRF+XSS分析复现过程




0x02 漏洞分析

既然具体流程分析清楚之后,就进行该漏洞分析

UploadControllerAbstract---》ueditorCatchImage方法中,发现了接收了一个数组

jspxcms SSRF+XSS分析复现过程


所以前期构造的URL为

http://127.0.0.1:8080/cmscp/core/ueditor.do?action=catchimage&source[]=http://127.0.0.1/a.txt
之后进行断点访问一步步分析,可以成功断到了ueditorCatchImage方法

jspxcms SSRF+XSS分析复现过程


跟进ueditorCatchImage方法,成功接收到source参数的值,为笔者传入的127.0.0.1/a.txt

jspxcms SSRF+XSS分析复现过程


继续往下跟,将传入的url存入到src变量之后,并进行了new URL(src).openConnection()进行连接,而返回值为HttpURLConnection,所以需要传入http或https

jspxcms SSRF+XSS分析复现过程


继续往后走的话,进行了两次校验,首先获取了contentType

jspxcms SSRF+XSS分析复现过程

由于上传的后缀为txt,所以该判断就会成立,执行continue。

jspxcms SSRF+XSS分析复现过程


于是乎这里用到了svg后缀进行绕过。准备了一个svg文件。放到了127.0.0.1/a.svg

jspxcms SSRF+XSS分析复现过程


当再次访问之后,类型成功变成了image。

jspxcms SSRF+XSS分析复现过程


之后将该svg文件成功保存上传了,这里其实就是一个远程下载的功能

jspxcms SSRF+XSS分析复现过程

jspxcms SSRF+XSS分析复现过程


成功执行了XSS

jspxcms SSRF+XSS分析复现过程


SSRF探测,当端口开发的时候,会返回SUCCESS

jspxcms SSRF+XSS分析复现过程


由于没有传入文件名,所以获取不到content-type类型,执行continue

jspxcms SSRF+XSS分析复现过程


再次到for循环时,i与传入的source进行比较,由于此时只传递了一个参数,所以就会直接跳出该for循环


jspxcms SSRF+XSS分析复现过程


所以会通过response执行返回一个SUCCESS

jspxcms SSRF+XSS分析复现过程


而result其实在最上方已经定义了

jspxcms SSRF+XSS分析复现过程


至此简要分析结束。



11111
微信搜索关注 "安全族" 长期致力于安全研究


下方扫一下扫,即可关注jspxcms SSRF+XSS分析复现过程

jspxcms SSRF+XSS分析复现过程






原文始发于微信公众号(安全族):jspxcms SSRF+XSS分析复现过程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日13:52:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   jspxcms SSRF+XSS分析复现过程https://cn-sec.com/archives/718695.html

发表评论

匿名网友 填写信息