拿到了数据库的权限可以任意操控数据库,可以登陆SSH服务器
利用的是文件包含漏洞
问题页面:http://www.vasee.com/event/view.jsp?day=2014-08-03&emid=ff80808146acac6f014770b306751ec2&id=ff80808146acac6f014770b305231eb8&sub=
其中sub参数就是包含处
传递sub=index?后页面报错
所以可以猜测 处理代码是
'/event/view_sub/view_'+'sum参数'+'.jsp'
提交sub=1后显示正常,经过证明/event/view_sub/目录下确实有view_1.jsp
所以猜测是正确的
然后就是构造包含了,在包含这里卡了很久发现跨不出 event目录 然后web服务器是tomcat 所以读不了conf下的配置文件.
后来随手一试构造如下参数
suu=/../../../WEB-INF/web.xml?
这样后台接收后sub参数就成了 /event/view_sub/view_/../../../WEB-INF/web.xml?.jsp
?伪截断,这种截断可以用在脚本文件还有.xml .txt .css .js .html 这类文件
看第一行
这个目录就是pics.vasee.com域名的目录 用来存放图片的
看到这思路就来了,在官网所有上传处都有漏洞可以上传jsp文件,不过当访问jsp的时候会给你解析成图片这就蛋疼了,不过现在目录有了,这俩域名都是一个服务器IP,然后在用包含漏洞包含jsp就能得到一个shell了 不过上面我说过跨不出event目录,就是从这得出的,
接下来又是一阵看web.xml的内容
挨个试一遍
找到这个文件
包含过去读出它的内容然后我又幸运的再这个文件找到另一个敏感文件
OK 继续读出这个文件内容,惊喜来了!
猜内容是什么?
数据库连接信息! 爽!
不过悲剧又来了,没有开放数据库端口
然后想到连它的SSH端口(记忆中在一个网页看到过postgresql的postgres用户存在于系统帐号)
不知道是不是真的,-.-
然后就连接成功了权限是数据库权限
用户名就是postgres
密码不是数据库密码
hibernate.connection.password=e2010ee_yan
而是这个密码
#hibernate.connection.password=vpaosseteg
可以查看web代码,无权限修改,能任意操作数据库
最后来几张截图 0.0
<jsp:include page="/event/view_sub/view_${sub}.jsp" />
这个就是包含处的代码,表示不懂JSP不明白为什么跨不了目录
包含处进行过滤,SSH也设置一下连接IP,文件上传处也过滤一下,把密码改一下,虽然,目前没发现利用点不过以后的事很难说,最后请厂商相信我,我连看都没看数据库就是连接了一下然后截了图退出了.