实战之特殊越权
2024-1-12 19:7:14 Author: goddemon的小屋(查看原文) 阅读量:4 收藏

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?*这种

Part3 后文

公众号后台的很多消息或者微信私加的消息不一定会回复,理解下,也有自己的一些事情。

可以把问题直接发后台,看到了会直接回复,也可以加群里面问问其他的一些师傅。

把群的二维码贴一下 感兴趣的自己加。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI2NTc1ODY0Mw==&mid=2247485786&idx=1&sn=5dc612e28ac842cc46dd174b11014b68&chksm=ebde66a2819b504a171270aa3e7490c41999635e92dd2e6356b1c11893eb4cdc6a69523db445&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh