实战之特殊越权

admin 2024年1月12日20:29:36评论21 views字数 1102阅读3分40秒阅读模式

Part1 前言

更篇文章,尽量做到一周一更,这次写一个小tips分享。

写这篇文章,其实没想好用什么名字,想来想去就定个特殊越权,其实说特殊吧其实也不是多特殊

但是确实实战场景里面会有这种情况。

Part2 正文

对于权限绕过这种,利用../ 或者;来实现权限绕过,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?*这种

原文始发于微信公众号(goddemon的小屋):实战之特殊越权

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月12日20:29:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战之特殊越权https://cn-sec.com/archives/2387554.html

发表评论

匿名网友 填写信息