乌云(WooYun.org)历史漏洞查询---http://wy.zone.ci/
乌云 Drops 文章在线浏览--------http://drop.zone.ci/
2012-12-03: 细节已通知厂商并且等待厂商处理中 2012-12-03: 厂商已经确认,细节仅向厂商公开 2012-12-13: 细节向核心白帽子及相关领域专家公开 2012-12-23: 细节向普通白帽子公开 2013-01-02: 细节向实习白帽子公开 2013-01-17: 细节向公众公开
渗透j2ee应用的一个饱满case!
很多初次接触渗透的人问过我(哈哈,其实我也是初学者(基本是注册乌云后开始的)),如何去渗透? 这个真不知道怎么回答。 个人的观点,一些条件:基础知识(还是要多学习,多实践)、一点独特的思维(喜欢干这个的人都基本具备)、运气(这个很重要(都懂的),当然,如果问题确实存在,它就是必然的)、一颗享受的心态去渗透(心态很重要)。 0day拼的是特长,渗透拼的是综合能力! 看看下面一个j2ee应用的渗透!
我的渗透简单流程:锁定目标业务 --> 判断ip段 --> 判断常规端口 --> 然后才是单个应用重点就是单个应用了:应用开发中的一些小细节在这里体现很重要了!
乐视网互联网电视运营支撑平台:http://115.182.94.67:8080/
首先,发现存在http://115.182.94.67:8080/login1.jsp这个访问路径(发现与http://115.182.94.67:8080/login.jsp有点不同),如果使用双斜杠“//”(其实是大于两个斜杠以上),发现就暴露了一些重要功能,注册操作管理人的重要功能暴露:
问题一:双斜杠绕过问题?很常见方式,本身如果没有“申请”这个功能,什么问题都可能不会发现,可它确实存在(这里可能是纯粹的js页面屏蔽,双斜杠路径引用出错使代码未执行,导致功能暴露!有兴趣的验证一下!)! 对于双斜杠引用路径问题,在j2ee开发框架中很好解决,把访问路径的全部定向在根目录下就好了,可能开发人员觉得麻烦,都不愿意去弄!
注册一个帐号,进入管理页面:
这是个低权限的帐号,我们的目标肯定是拿下服务器权限:
尝试一些sql注射等常规手段未果后,转向j2ee应用本身的一些问题。
发现统计功能使用了jfreechart包,这里就容易有个问题:“任意文件读取”。因为jfreechart是根据数据即时生成图片,然后返回这张图片路径的,开发人员再使用它。
这里开发人员处理了(不知道开发人员真有这意识,哈哈),把路径定死在tomcat/temp目录下(或者其他绕过方式,也没去测试了!),因为看到一个重要信息,异常信息:
问题2:异常信息处理,它暴露从容器到框架及一些具体代码等!所以它很重要!很重要!(如何去渗透j2ee,就在这里,让j2ee应用出错!)问题3:处理异常信息时,要注意XSS,具体请见哥这篇简述:http://hi.baidu.com/shineo__o/item/a273f612060ec1d287ad4ec5
opensymphony? struts2? 原来是struts2框架,问题就简单了! 因为这里根据访问的url的后缀,如:http://115.182.94.99:8080/login1.jsphttp://115.182.94.99:8080/signup以为是纯jsp及servlet的实现(这算是开发人员的安全意识提升吗?)!通常判断struts2时,常规后缀是xxx.action、xxx!xxx.do、xxx.do或xxx.htm(哥就用这个后缀,但哥用的是自己写的框架,哈哈!)等。
发现还是个double kill !
接下来就是内网及数据库所在网段了,就不去看了!
上服务器看了看源代码,发现路径引用问题还是很多,开发很乱,没条理,如:
mainboard.jsp<%@ include file="/隐藏/taglibs.jsp"%><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> </head> <frameset rows="60,30,*,29" cols="*" frameborder="no" border="0" framespacing="0" onhelp="return false"> <frame src="${ctx}/隐藏/frame/topframe.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" /> <frame src="${ctx}/隐藏/frame/menuframe.jsp" name="menuFrame" scrolling="no" noresize="noresize" id="menuFrame" /> <frame src="${ctx}/隐藏/frame/operframe.jsp" name="operFrame" scrolling="no" noresize="noresize" id="operFrame" /> <frame src="${ctx}/隐藏/frame/bottomframe.jsp" name="buttomFrame" scrolling="no" noresize="noresize" id="buttomFrame" /> </frameset> <noframes></noframes></html>
frame我通常是使用web框架指定文件路径(定向根目录),而不是直接使用jsp文件路径的! 开发人员多注意细节啊!除了影响界面美工,还有其他东西了?
因为,谁会想到一个文件引用的路径问题,导致服务器沦陷了?
危害等级:高
漏洞Rank:18
确认时间:2012-12-03 13:52
感谢帮忙挖掘,我们会立刻处理该问题。
暂无