JSP注入攻击tomcat服务器小案例

最近学了文件上传下载,但是注意到了一个问题,用户上传普通的比如图片小说,这是没有问题的,但是,如果用户上传了一个可以在服务器执行的文件比如jsp,这问题可就大了。


先演示一段jap注入攻击,假定上传的文件我们放在tomcat的根目录下:


这是上传页面代码

名称:
艳照:

这是servlet处理上传的代码

public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
{
		//普通字段
		String username=request.getParameter("username");
		
		//上传 Part servlet3.0用于描述文件上传的对象   类似于阿帕奇的fileupload(FileItem)
		javax.servlet.http.Part imagePart = request.getPart("image");
		
		// * 文件名   Content-Disposition: form-data; name="image"; filename="xxx.jpg"
		String contentDisposition = imagePart.getHeader("Content-Disposition");
		int beginIndex=contentDisposition.lastIndexOf("filename")+"filename=\"".length();
		int endIndex=contentDisposition.length()-1;
		String fileName=contentDisposition.substring(beginIndex, endIndex);
		
		//文件内容
		InputStream is=imagePart.getInputStream();
		File file=new File(this.getServletContext().getRealPath("/WEB-INF"),fileName);
		FileOutputStream out=new FileOutputStream(file);
		byte[] buf=new byte[1024];
		int len=0;
		while((len=is.read(buf)) !=-1)
		{
			out.write(buf,0,len);
		}
		out.close();
		is.close();
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException 
	{
		doGet(request, response);
	}

ok 来段攻击看看:

JSP注入攻击tomcat服务器小案例_第1张图片


JSP注入攻击tomcat服务器小案例_第2张图片


就是一段简单的文字打印o(^▽^)o


来看看浏览器给的回应:

JSP注入攻击tomcat服务器小案例_第3张图片



注入成功了。




如果上传的是修改磁盘或者删文件的就麻烦了。目前解决办法,可以创建多层目录,不能放到根目录下。

你可能感兴趣的:(JavaWeb,参与感Thinking,in,Java)