点击关注公众号,知识干货及时送达👇
Part.1 前言
很多朋友在渗透测试的时候,会经常碰到Druid监控页面,如果开发者配置不当,可直接进行未授权访问。
Part.2 Druid简介
-
Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池。 -
Druid数据监控界面,里面存在数据源,sql监控,sql防火墙,web应用,url监控,session监控,spring监控等信息,可以详细监控该网站的情况,获取敏感信息,在web监控中,可以获取网站的目录或者接口,在session监控中,可以获取网站用户的session,从而伪造用户session进行登录。
Part.3 Druid常见漏洞路径
-
/druid/index.html 可未授权直接查看主页信息
-
/druid/weburi.html
-
该接口泄露的是网站的url地址或者接口,大多数都是一些api接口,有时候也会泄露一些敏感文件信息,可直接用burp进行遍历,探测哪些接口可未授权访问。
-
-
/druid/websession.html
-
这里泄露的主要是登录用户的session,不管是登陆成功的、没登陆成功的,还是失效的都会储存在这里,可使用burp,结合后台接口进行遍历,探测未失效的session。
-
-
如果手工去挖掘的话,还是比较麻烦的
-
burp插件:
RouteVuScan
下载地址:
https://github.com/F6JO/RouteVulScan
-
可直接对上述页面或其他页面进行添加,访问网站以后,插件会自动对网站进行扫描,探测是否存在未授权访问页面。
-
-
以下是我挖SRC过程中开启插件自动发现的漏洞。
-
-
Part.4 修复建议
增加用户名密码配置。
代码修改WebConfiguration
@Value("${spring.druid.allowed:?}")
private String druidAllowed;
@Value("${spring.druid.password:?}")
private String druidPassword;
@Bean
public ServletRegistrationBean servletRegistrationBean(){
ServletRegistrationBean druidServlet = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
Map<String, String> map = new HashMap<String, String>();
if(!"?".equals(druidPassword)) {
map.put("loginUsername", "admin");
map.put("loginPassword", druidPassword);
}
if (!"?".equals(druidAllowed)) {
map.put("allow", druidAllowed);
}
druidServlet.setInitParameters(map);
return druidServlet;
}
配置文件修改
下面的配置为登录账号和密码
spring.druid.allowed=admin
spring.druid.password=123456
登录页面
http://{ip}:{port}/druid/login.html
登录账号密码为配置文件配置allowed和password
Part.5 小结
- End -
原文始发于微信公众号(希石安全团队):【漏洞挖掘】Druid未授权漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论