1. Global search for new File found that at org/jeecgframework/core/common/dao/ipl/CommonDao. java: 481, a new 'File' object with a specified file path will be created in the parserXML() method of the commonDao layer, and the string 'fileName' parameter will be passed into it to track whether this method has filtering behavior on fileName
2. From the parserXML() method to org/jeecgframework/core/common/service/ipl/CommonServiceImpl. java: 359, it was found that this method was returned by parserXML(). Continue to see where this method is called
3. Continuing the analysis to the controller layer, it was found that org/jeecgframework/web/system/controller/core/CommonController. java: 179 directly called the parserXML() method and concatenated the fileName parameter. When analyzing upwards and knowing that there is a parserXML parameter in the route, this method will be implemented. At org/jeecgframework/web/system/controller/core/CommonController. java: 159, an empty fileName parameter will be created
4. By analyzing org/jeecgframework/web/system/controller/core/CommonController. java: 170, the file name is directly obtained from the uploaded file and passed to fileName. Downward analysis directly concatenates fileName, and the entire process does not blacklist or whitelist the file. The parameter fileName is controllable, so there is a file upload vulnerability here
1. Global search for new File found that at org/jeecgframework/core/common/dao/ipl/CommonDao. java: 481, a new 'File' object with a specified file path will be created in the parserXML() method of the commonDao layer, and the string 'fileName' parameter will be passed into it to track whether this method has filtering behavior on fileName
2. From the parserXML() method to org/jeecgframework/core/common/service/ipl/CommonServiceImpl. java: 359, it was found that this method was returned by parserXML(). Continue to see where this method is called
3. Continuing the analysis to the controller layer, it was found that org/jeecgframework/web/system/controller/core/CommonController. java: 179 directly called the parserXML() method and concatenated the fileName parameter. When analyzing upwards and knowing that there is a parserXML parameter in the route, this method will be implemented. At org/jeecgframework/web/system/controller/core/CommonController. java: 159, an empty fileName parameter will be created
4. By analyzing org/jeecgframework/web/system/controller/core/CommonController. java: 170, the file name is directly obtained from the uploaded file and passed to fileName. Downward analysis directly concatenates fileName, and the entire process does not blacklist or whitelist the file. The parameter fileName is controllable, so there is a file upload vulnerability here