更篇文章,尽量做到一周一更,这次写一个小tips分享。
写这篇文章,其实没想好用什么名字,想来想去就定个特殊越权,其实说特殊吧其实也不是多特殊。
但是确实实战场景里面会有这种情况。
对于权限绕过这种,利用../ 或者;来实现权限绕过,java里面老生常谈的东西了,之前也有分享过。
核心是requesturi导致的今天带来一个基于这种机制的变种越权,遇到过一次,找不到图了,将就看吧。
核心也是requesturi的问题,不过在权限下的越权,但是很多人不会去测这种漏洞。
具体代码原理如下:(代码写的有点臭,将就看) 这个代码核心可以看出,是做了用户的session判断的,然后根据用户取对应的权限。
但是由于开发未意识到requesturi的问题,因此采用uri.contains(url)的模式去进行判断。
进而导致可以利用;以及../../达到越权效果。
String uri=request.getRequestUri();if(NOT_INTERCEPT_URI.contains(uri))
{
logger.info("不拦截-->"+uri);
return true;
}
httpSession session=request.getSession();
UserDTO user = (UserDTO) request.getSession().getAttribute("user");
if (user != null) {
List<String> userRoles = getUserRoles(user);
boolean flag = urlLists.stream()
.map(Roleurloto::getMenuurl)
.anyMatch(url -> uri.contains(url));
if (!flag) {
logger.info("非法访问" + uri);
return false;
}
} else {
logger.info("用户未登录");
boolean flag=flase;
return false;
}
if(flag==false)
{
logger.info("非法访问"+uri);
return false;
}
}
很多师傅可能会说这个是特例,可是真的是特例吗?
去github上面看了下 还是有些开发基于这种思路写的因此在日常做渗透测试的时候,如果是java的网站且
有低权限用户的情况下,可以考虑下 利用../ ;
结合路由api实现权限绕过 说不定就出奇迹了呢?
适用场景:
①具备低权限
②具有白名单路由以及高权限路由
如index.do/../admin.do?*这种
公众号后台的很多消息或者微信私加的消息不一定会回复,理解下,也有自己的一些事情。
可以把问题直接发后台,看到了会直接回复,也可以加群里面问问其他的一些师傅。
把群的二维码贴一下 感兴趣的自己加。