✦
前言
✦
长亭于今日发布了iDocView /html/2word 远程代码执行漏洞的预警
所以这边直接掏出了早前的审计过程
✦
漏洞分析
✦
tomcat+spring-mvc看Interceptor ViewInterceptor没什么拦截。this.thdViewCheckSwitch默认为False
XssFilter也没拦截
看漏洞点 html/2word传入URL参数。大概率是根据URL下载文件之类没判断后缀的漏洞
url带入了GrabWebPageUtil.downloadHtml 首先看看带入getWebPage发生了什么
大概意思就是访问指定的URL。然后截取/之后的文件名。写入。判断后缀是否为php之类的。。没过滤jsp。
还有一个要注意的点。这里传入的第三个参数fileName和截取URL拿到的文件名filename。如果fileName存在就不用URL截取的文件名了。 所以这里第三个参数传入了index.html。这里文件名不可控。不能利用 回到上一层。这里的getWebPage没有指定第三个参数。只要GrabUtility.filesToGrab可控。就能写任意文件
看看GrabUtility.filesToGrab怎么来的 最后发现是第一次传入的url返回的内容做了解析
将内容中的link、script、img标签的URL加入到filesToGrab。然后遍历去下载。其实也可以理解。下载一个HTML。同时把相关的css img都下下来
所以这里就有大概的利用方式了。
1、指定一个URL。写一个访问之后将link的url加入filesToGrab
2、遍历filesToGrab访问http://IP/……2.jsp
3、起一个python socket。访问就返回jsp内容。由于getwebpage的文件名是由最后一个/之后的。这里利用反斜杠绕过。得到……2.jsp即可写入web目录
解析第一次请求结果之后的URL加入filesToGrab
把……2.jsp拼接路径。最后跨目录写文件
这里有个小问题。其实路径要写……docview2.jsp才是web目录。懒得重写了
更多漏洞安全请关注我们
未经允许禁止转载
1
END
1
原文始发于微信公众号(漏洞随笔):iDocView /html/2word 远程代码执行漏洞分析