技术笔记

URL whitelist Bypass

字号+ 作者:匿名投稿 来源:转载 2017-04-18 08:45 我要评论( )

最近碰到蛮多URL设置白名单被绕过的case。 简单做个总结。可绕过的漏洞 不局限于下面漏洞CSRF (Referer白名单) JSON劫持 (Referer白名单)SSRF (URL白名单) 常被绕......

最近碰到蛮多URL设置白名单被绕过的case。
简单做个总结。可绕过的漏洞
不局限于下面漏洞CSRF (Referer白名单)
JSON劫持 (Referer白名单)SSRF (URL白名单)
常被绕过的函数java
endswithcontains
实际案例利用endswith判断URL
可造成的漏洞:CSRF
JSON劫持 (京东发现过类似问题)
SSRF
使用endswith函数进行URL判断导致bypass
验证逻辑:
截取一级域名判断一级域名结尾是否在白名单列表里
漏洞代码:
 private boolean referCheck(HttpServletRequest request, String[] refers) {
        if (null != request && refers.length > 0) {
            String r = request.getHeader("Referer");
            if (null == r || "".equals(r)) {//refer 为空
                return false;
            }
            r = getRootHost(r);
            //refer 不为空的情况
            boolean checked = false;
            for (String rule : refers) {
                if (StringUtils.endsWith(r, rule)) {//如果命中了一条规则
                    checked = true;
                }
            }
            if (!checked) {
                return false;
            }
        }
        return true;
    }

    /**
     * 获取根域
     *
     * @param url
     * @return
     */
    private String getRootHost(String url) {
        if (!url.startsWith("http") && !url.startsWith("https")) {
            url = "http://" + url;
        }
        try {
            URI uri = new URI(url);
            String host = uri.getHost();
            if (host.startsWith("www")) {
                host = host.substring("www".length() + 1);
            }
            return host;
        } catch (Exception e) {
            //do nothing
        }
        return url;
    }
绕过:
http://www.zbg.me
http://www.zbg.me截取后的一级域名为zbg.me,再利用endswith判断是否以zbg.me结尾,导致被绕过。
使用contains判断URL
这种情况在企业中发生比较多。
可造成的漏洞:
CSRF
JSON劫持
SSRF
验证逻辑
判断referer是否包含zbg.me字符串绕过
http://www.zbg.me.asdf.sadf
使用正则判断URL这种情况,经常出现在SSRF下载图片的时候。
利用正则限制URI形如4000*3000,但没有限制URL。所以可以使用http://zbf.me/test_4000*3000.php来绕过。


本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Note/622.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 关于Safe DOG的文件上传bypass

    关于Safe DOG的文件上传bypass

    2017-03-07 09:08

  • 渗透测试中的Bypass技巧(二)

    渗透测试中的Bypass技巧(二)

    2017-03-07 09:14

  • 渗透测试中的Bypass技巧(一)

    渗透测试中的Bypass技巧(一)

    2017-03-07 08:54

  • 我的WafBypass之道(SQL注入篇)

    我的WafBypass之道(SQL注入篇)

    2016-11-26 10:12

网友点评
暂时未开启评论功能~