我们先来看权限分析:
根据系统 web.xml
的内容可知系统为Spring mvc架构
那就先看 WEB-INF/classes/spring-mvc.xml ,主要看它的springmvc拦截器 ,这里配置有权限相关的拦截校验,如果权限校验存在缺陷,这可能存在权限绕过漏洞。
根据此系统的拦截器定义部分,看下面对请求路径 /mch/**
的拦截实现class以及其定义的白名单url路径列表
跟进类HiveInterceptor,其中preHandle方法下对于URL路径的获取使用的 request.getRequestURI() ,看到这里就知道存在权限绕过漏洞了,简单来说就是获取的url是格式化之前的路径包括一些特殊符号如夸目录 ../
这类的,且使用的uri.contains(url) 方法来判断请求的url路径里是否包含白名单列表中的内容,如果包含着直接返回true,就通过权限校验了
接下来随机选择一处代码,几乎所有接口都需要传递参数token
验证一下如果我们不去传递这个token参数会返回什么,测试返回token失效
当我们利用默认不检查js权限进行绕过的时候,此时提示的是缺少某些参数,说明我们的权限校验已经成功绕过
接着就是去分析哪些存在SQL注入漏洞的代码,很多地方都存在需要权限校验,从代码可知,直接将参数id拼接在了SQL中
SQLMAP测试
没有回复内容