万户ezoffice逻辑缺陷+sql注入漏洞

漏洞原理

读取配置文件发现该系统存在一个“SetCharacterEncodingFilter”过滤器,进入该class文件查看详情内容:
blockchain

该filter主要是拦截未登录就直接访问jsp文件情况,并且对几个特殊的servlet做一个数据过滤功能,但是问题出现在存在一个文件“OfficeServer.jsp”白名单,该文件不需要登录直接放行,又因为通过“getRequestURI”方法获取到的url是存在安全性问题的,所有构造特殊请求直接进入白名单的逻辑直接触发odFilter放行,从而绕过登录校验以及几个特殊servlet的数据过滤功能。
blockchain

利用方式

找到一个需要登录才能访问的jsp文件,并且存在sql注入漏洞如/public/iSignatureHTML.jsp/DocumentEdit.jsp)”DocumentID”天大的一个sql注入
blockchain

直接访问该文件,被302到登录界面
blockchain

构造特殊请求,使url里面包含白名单的“iWebOfficeSign/OfficeServer.jsp”内容,成功访问
blockchain

/defaultroot/iWebOfficeSign/OfficeServer.jsp/../../public/iSignatureHTML.jsp/DocumentEdit.jsp?DocumentID=1&XYBH=1&BMJH=1&JF=1&YF=1&HZNR=1&QLZR=1&CPMC=1&DGSL=1&DGRQ=1

接下来就是在DocumentID上触发漏洞了,因为万户ezoffice可以使用多种数据库,所以实战当中的注入略微不同,比如mssql就是11个字段,而oracle就只有10个字段并且需要from dual
blockchain

总结

当然仅仅是展示了绕过后的一个sql注入漏洞,实际上还存在许多jsp和servlet可以利用,如xxe、文件上传等

版权声明:
作者:ucpeo
链接: Blog
来源:Blog
文章版权归作者所有,未经允许请勿转载。

THE END
< < 上一篇
下一篇>>