| ewebeditor jsp 1.4以下版本上传漏洞 |
| ewebeditor jsp 1.4以下版本上传漏洞 | ||
| 作者:YesHack.… 文章来源:YesHack.Com 更新时间:2008-12-2 8:20:50 【字体:小 大】 | ||
作者:诚妹[J.L.S.T] 漏洞存在于ewebeditor jsp版 1.4以下版本,漏洞有两个版本。 第一个是使用savefile.jsp来进行文件上传操作的,我们来看看其漏洞代码: String sType = request.getParameter("type"); if (sType == null) { sType = ""; } String sStyleName = request.getParameter("style"); if (sStyleName == null) { sStyleName = ""; } String suploadDir = request.getParameter("dir"); if (sUploadDir == null) { sUploadDir = "uploadfile"; } String sAllowExt = request.getParameter("ext"); if (sAllowExt == null) { sAllowExt = ""; } int nAllowSize = 100; if (request.getParameter("size") != null) { nAllowSize = Integer.parseInt(request.getParameter("size")); } DiskFileUpload upload = new DiskFileUpload(); try { List items = upload.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField()) { long sizeInBytes = item.getSize(); String sFileExt = this.getFileExt(item.getName()); if (sizeInBytes > nAllowSize * 1024) { } if (!this.CheckValidExt(sFileExt, sAllowExt)) { } StringBuffer newnewFile = new StringBuffer(this.getFileName() + "." + sFileExt); String realPath=this.getRealPath(sUploadDir); File uploadedFolder = new File(realPath); uploadedFolder.mkdirs(); File uploadedFile=new File(realPath + newFile.toString()); item.write(uploadedFile); response.sendRedirect("/supereditor/upload.jsp?action=success&file=" + newFile.toString()); } } } 从代码中可以看出,程序并没做任何上传过滤,这样我们就可以直接上传一个JSPShell了。
另一个版本可能是被人修改过,把代码转成了servlet,不能看到代码,但是利用方法却大同小异。我们先找一个1.4版本以下的ewebeditor JSP上传页面,选择好一个JSPShell。这个ewebeditor是没有提交按钮的,所以这里涉及到一个小技巧,就是在上传的对话框中敲下回车,大约过半分钟,就可以查看网页的源文件来寻找我们的Webshell了。
|
||
|
||
| 文章录入:YesHack 责任编辑:YesHack.Com | ||
您现在的位置: