发布于2022年10月18日3年前 前言 hw的时候遇到的,结束后复现找了一下漏洞代码 正文 漏洞url: /dcs.web/upload?convertType=19&isSourceDir=0 文档说明 upload处理点 config.inputDir.getPath()获取config.properties里的dir.input,然后设置了三个属性值: * fname - 文件名 * finput - 文件上传后的路径 * sourceRelativepath - 生成的UUID 文件写入到input目录后,返回json请求/convert进行处理 首先调用buildParam函数进行处理 获取convertType参数,然后转换成int类型。传入EnumConvertType.getEnum判断值是否存在hash表里 经过获取一些请求参数后,然后来到 String lowrealInput = realInput.toLowerCase() 往上跟踪发现取finput属性,获取inputDir,outputDir,zipFileName,zipOutput请求参数。然后进行判断,由于请求都没有带到这些参数所以去到finput 然后进入大判断,判断lowrealInput尾部是否存在对应的后缀,并将EnumConvertType设置为对应的hash表key 然后去到284行,获取fname,fileName属性的值。判断fileName不为空调用setFIleName函数。设置this.fileName,然后获取compressedSuffix请求参数,最后判断enumType不为空调用updateFilePath函数 updateFilePath函数 后面就是对一些请求参数转int进行设置 回到ConvertParamBuilder.class,经过checkParam函数判断是不是pdf,然后单独开个线程处理然后生成json调用getJsonResult函数 getJsonResult函数 getResultDate函数生成返回的url ZipService.zipfile函数,先获取tmpDir目录然后调用copyDirectiory函数将input目录下上传的文件copy到out目录。最后调用zip函数 zip函数如下 zip函数 引用一张图 参考链接:https://saucer-man.com/information_security/364.html
创建帐户或登录后发表意见