### 简要描述: 大汉版通某系统存在多处任意文件上传/删除漏洞 ### 详细说明: 一、漏洞代码 文件上传: 漏洞一:/xxgk/jcms_files/jcms1/web1/site/zfxxgk/ysqgk/attachupload.jsp 漏洞二:/xxgk/jcms_files/jcms1/web1/site/zfxxgk/ysqgk/apply_attach_upload.jsp 文件删除: 上述两个文件同时存在任意文件删除漏洞 先来看任意文件删除的代码: ``` if("D".equals(strBillStatus)) { delFileName = filepath.substring(filepath.lastIndexOf("/")+1,filepath.length()); // 删除文件 String strFilePath = strDictionary + "/"+delFileName; File file = new File(strFilePath); if(file.exists() && file.isFile()) { file.delete(); } ``` 可以看出来,没有经过任何的过滤便进行了文件的删除操作,因而造成了任意文件删除漏洞。 再来看任意文件上传代码: ``` if("S".equals(strBillStatus)) { if (bResult) { //上传文件名 strName = upload.getFileName(); //文件大小 long nSize = upload.getFileSize(); //文件名 String strOldName = strDictionary + "/" + strName; //文件类型 int nPot = strOldName.indexOf(".", strOldName.length() - 6); String strFileType = strOldName.substring(nPot + 1, strOldName.length()); File file1 = new File( strOldName ); //得到系统时间 java.util.Date current = new java.util.Date();...
### 简要描述: 大汉版通某系统存在多处任意文件上传/删除漏洞 ### 详细说明: 一、漏洞代码 文件上传: 漏洞一:/xxgk/jcms_files/jcms1/web1/site/zfxxgk/ysqgk/attachupload.jsp 漏洞二:/xxgk/jcms_files/jcms1/web1/site/zfxxgk/ysqgk/apply_attach_upload.jsp 文件删除: 上述两个文件同时存在任意文件删除漏洞 先来看任意文件删除的代码: ``` if("D".equals(strBillStatus)) { delFileName = filepath.substring(filepath.lastIndexOf("/")+1,filepath.length()); // 删除文件 String strFilePath = strDictionary + "/"+delFileName; File file = new File(strFilePath); if(file.exists() && file.isFile()) { file.delete(); } ``` 可以看出来,没有经过任何的过滤便进行了文件的删除操作,因而造成了任意文件删除漏洞。 再来看任意文件上传代码: ``` if("S".equals(strBillStatus)) { if (bResult) { //上传文件名 strName = upload.getFileName(); //文件大小 long nSize = upload.getFileSize(); //文件名 String strOldName = strDictionary + "/" + strName; //文件类型 int nPot = strOldName.indexOf(".", strOldName.length() - 6); String strFileType = strOldName.substring(nPot + 1, strOldName.length()); File file1 = new File( strOldName ); //得到系统时间 java.util.Date current = new java.util.Date(); java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyMMddHHmmssSSS"); java.text.SimpleDateFormat formatter1 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //新文件名=系统时间+原文件类型 strNewName = formatter.format(current)+"."+strFileType; File newFile = new File(strDictionary + "/" + strNewName); //改文件名 file1.renameTo(newFile); filepath = sessionPath + "/" + strNewName; filename = strName; } //end if } ``` 这里上传的类File 对上传文件的后缀有一定的限制,但在Window下同样可以实现GETSHELL 二、漏洞利用 首先来看任意文件删除 我们先上传任意的jpg文件,来测试删除漏洞,如下图 [<img src="https://images.seebug.org/upload/201405/1215583072f449f5cc9a8e99aa8fed45529d7bbf.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/1215583072f449f5cc9a8e99aa8fed45529d7bbf.jpg) 点击删除后,抓包修改文件路径即可删除任意文件,考虑到删除任意文件有很大的危害性,这里不具体测试,如下图 [<img src="https://images.seebug.org/upload/201405/1216010028c93249f1338cd1a746462af9a31c98.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/1216010028c93249f1338cd1a746462af9a31c98.jpg) 再来测试任意文件上传: 首先上传一个正常的帮马图片,点击上传 抓包修改,如图 [<img src="https://images.seebug.org/upload/201405/1216032182f5e8d8e0d1f4fae5c022177c8b2241.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/1216032182f5e8d8e0d1f4fae5c022177c8b2241.jpg) 我们知道"."在Windows下会被自动忽略,于是生成.jsp文件,如图 [<img src="https://images.seebug.org/upload/201405/12160459e0f69ee85aff492803c3f35671160463.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/12160459e0f69ee85aff492803c3f35671160463.jpg) ### 漏洞证明: 三、漏洞证明 [<img src="https://images.seebug.org/upload/201405/12160459e0f69ee85aff492803c3f35671160463.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201405/12160459e0f69ee85aff492803c3f35671160463.jpg)