虽然泛微ebridge使用了jfinal,但是使用url编码来访问文件不是利用的JFinal的DenyAccessJsp绕过,因为在使用tomcat除了编码还可以使用.jsp;来访问文件(https://forum.butian.net/share/1899),但是这个在使用.jsp;访问时却依然会跳转
文件源码
直接打开OutSysProxyHandler
isLocalRequestURL首先会从proxy.xml里取出view标签里的值,当取尽之后再从excludes中取
Proxy.xml中的view标签和excludes如下
<view>
<pattern>*.jsp</pattern>
<pattern>/weaver/*</pattern>
</view>
<excludes>
<pattern>/</pattern>
<pattern>/login.do</pattern>
<pattern>/*</pattern>
<pattern>/druid/*</pattern>
</excludes>
往下执行可以看到有一个循环语句,他会从proxy.xml中取出列表里的元素来对requestURL进行匹配,在这个循环中如果匹配到了.jsp结尾的文件路径或者/weaver/开头的路径都会返回false
在返回false之后会来到,由于islocalrequest为false所以无法进入第一个if语句,继续执行会来到else语句中,
这里会有一个getLastAccessOutSys
但是返回为null所以直接来到else这里 err code = -15,在经过一系列处理后会重定向到/wxapi/erropage
而在我们使用url编码时当pattern.marcger来匹配requesturl会匹配不到
由于匹配不到所以会继续从excludes中取值匹配,直到来到/*
此时islocalrequest会为true
随后经过if语句判断之后直接可以访问到我们的文件











