Druid未授权(弱口令)的一些利用方式
Druid简介
1.Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池.
2.Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控.
Druid可能存在的一些问题
首先Druid是不存在什么漏洞的。
当开发者配置不当时就可能造成未授权访问下面给出常见Druid未授权访问路径
/druid/websession.html
/system/druid/websession.html
/webpage/system/druid/websession.html(jeecg)
当遇到需要登录的Druid是可能存在弱口下面给出Druid常见登录口路径。
/druid/login.html
/system/druid/login.html
/webpage/system/druid/login.html
以上路径可能不止存在于根目录,遇到过在二级目录下的,我们扫路径时可能就关注根目录这个点可以注意一下
Druid的一些利用方式
通过泄露的Session登录后台
直接在/druid/websession.html页面ctrl+a复制整个页面内容到EmEditor
删除红框部分,点击制表符
这样就可以直接复制了,也可以通过其他方式处理,个人比较喜欢这个方式
然后再到URI监控处找一条看起来像登录后台才能访问的路径(可用home等关键词快速定位)
此处设置爆破,将刚才得到的Session值填入,因为此处的session值存在一些特殊符号需要关闭burp默认的url编码
200即为有效session,用改cookie的插件改成有效的就能进入后台测试
通过URI监控测试未授权越权
由于有的Druid可能Session监控处没有东西,可以通过URI监控测试未授权越权
具体案例现在手上没有,之前众测挖到过通过session爆破,有效的只是一个普通账号,回过来看URI监控找到了任意用户密码重置,越权查看任意用户信息,越权添加管理员等.
Druid未授权访问利用
Druid简介
druid是阿里研发的一款数据库连接池,其开发语言为java,druid集合了c3p0、dbcp、proxool等连接池的优点,还加入了日志监控、session监控等数据监控功能,使用Druid能有效的监控DB池连接和SQL的执行情况。
更多信息可参考官方GitHub项目:https://github.com/alibaba/druid
druid虽高效好用,但当开发者配置不当时就可能造成未授权访问,攻击者可利用泄露的Session登录后台
Druid未授权访问路径
怎么探寻Druid未授权访问呢?可以直接拼接以下路径进行访问,如果页面存在,即为Druid未授权访问
html:
ip/druid/index.html ##Druid Index
ip/druid/sql.html ##Druid sql监控页面
ip/druid/weburi.html ##Druid Web URI监控页面
ip/druid/websession.html ##Druid Web Session监控页面
json:
ip/druid/weburi.json ##Druid Web URI json
ip/druid/websession.json ##Druid Web Session json
Druid 登录接口:
ip/druid/login.html ##Druid登录认证页面
当一级目录不存在时,可尝试拼接二级目录进行访问
也可利用谷歌语法或目录扫描工具进行探测:
site:xx.com intitle:Druid Stat Index
提取session
访问ip/druid/weburi.html看到以下页面则证明漏洞可被利用,如果url和session页面都为空,则说明这两项druid并不管理
当/druid/websession.html页面存在数据时,我们可利用该页面的session伪造登录,点击最后访问时间,然后复制一条离现在时间最为接近的session进行伪造登录;之所以要点击最后访问时间排序session,是因为此处记录的Session并非全部都是用户在线时的session,当用户退出系统时,session虽然还存在,但已失效,无法再利用。
也可利用py提取session然后结合burp的Intruder模块批量遍历高权限用户,session地址可参考上面给出的链接
如果我们并不清楚后台的位置,我们可再把脚本改一下,利用url监控处为我们提供清晰的站点目录架构
ok,得到后台地址,接下来我们访问一下
重新刷新一下页面,然后开启burp进行抓包,抓包过程中发现站点cookie值存在session字段,点击最后访问时间排序一下session,随后复制session过来访问一下
毫无意外,成功进去,但是权限不高,看来还是得开启神奇的Intruder模块,爆破结果如下
根据返回包信息看哪条session权限高就用它伪造登录
注:除session伪造外,url监控和sql监控也能为我们开拓攻击的思路,当我们遇到一个注入且不清楚其语法结构时,查看sql监控处有可能会得到,此外,url监控处也为我们提供了较为清晰的站点目录架构
session伪造进后台
之后就是替换cookie值伪造登录了,f12改一下session值即可
结语
druid作为数据源的一名后起之秀,凭借其出色的性能,渐渐被大家使用。当然还有他的监控页面也有这非常大的作用。但是监控页面往往包含了很多隐私的数据信息,所以需要将其保密,可以为监控页面添加一个用户名和密码,确保其安全性
Druid 开启权限校验
Github: https://github.com/alibaba/druid
Druid 的验证方式官网提供了一种根据ip来做访问限制的方式,即allow和deny, 详询 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE
还有一种方式,即用户名和密码,但是此方法官网没有提及,这个方式也是我看了源码后才知道的,现在分享给大家
首先从web.xml中的servlet出发
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
综合分析在web.xml中配置servlet的初始化参数loginUsername和loginPassword即可
在访问druid的监控页面,会自动转到login.html
整改思路
Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。
这个StatViewServlet的用途包括:
提供监控信息展示的html页面
提供监控信息的JSON API
配置web.xml
StatViewServlet是一个标准的javax.servlet.http.HttpServlet,需要配置在你web应用中的WEB-INF/web.xml中。
<servlet>
<servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html
例如:https://zhxx.chinacoal-safety.gov.cn/mj/druid/index.html
配置监控页面访问密码
需要配置Servlet的 loginUsername 和 loginPassword这两个初始参数。
示例如下:
<!-- 配置 Druid 监控信息显示页面 -->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<!-- 允许清空统计数据 -->
<param-name>resetEnable</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<!-- 用户名 -->
<param-name>loginUsername</param-name>
<param-value>druid</param-value>
</init-param>
<init-param>
<!-- 密码 -->
<param-name>loginPassword</param-name>
<param-value>druid</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
整改效果
本文始发于微信公众号(利刃信安):Druid 未授权访问漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论