We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
根据经验和名字,这个类基本上就是一个通用类,统一作为文件上传功能的接口,如果能上传上去,可能会有执行权限的风险,在阅读了一部分的springboot的文档后发现如下
首先进入avatar函数,这个函数会接收名为file的数据并赋值到file中,文件类型是[MultipartFile](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/multipart/MultipartFile.html),是springboot接受文件内容的类。 **随后进入37行,这里对目标path进行了赋值,问题也出在这里。file.getOriginalFilename()获取到我们上传文件的全部名称。FileUtil.extName,获取到了我们上传文件的后缀。使用随机值作为名字。赋值给了path。这里后缀我们可控。**也是这个漏洞的核心点
String path = IdUtil.simpleUUID() + '.' + FileUtil.extName(file.getOriginalFilename());
接下来进入到处理文件的代码,38行。调用了OssStorageFactory.getStorageService()方法,我们进入这个方法中,简单判断下默认属性,进入到build()函数中,主要看build函数,点击跳进去。
前面先对config进行了赋值,同时对上传文件的属性进行了判断,支持云上传。如果没有配置,那么直接进入后面的else判断。上传文件到本地。
首先进入44行,创建一个ApplicationHome类,给config分别赋值Domain和UploadFolder。随后创建一个LocalStorageService类并返回。随后回到最开始的OssStorageFactory.getStorageService().upload(file.getInputStream(), path),这里的LocalStorageService是OssStorageFactory的实现类,进入LocalStorageService的upload方法,如下所示:
接收传过来的文件的流和path,23行对目标进行设置文件路径,以path结尾,这里path前面进行了名称重命名,所以无法进行目录穿越。但是文件这时已经传上去了,对后缀并未进行检测。随后返回数据。
至此,完成了文件上传,至于利用方式,当前只能传html,其他的不解析。
去看安装文档就能知道,我们是直接下载sql数据库进行网站的安装的。根据官网提示,也是让我们直接创建一个数据库,随后导入这个sql文件,进行网站的搭建的。
这里会默认创建两个账号,一个是[email protected] , 另外一个是[email protected] 。其中[email protected]这个账号是管理员账号。这两个账号对应的密码为123456,12345678。均为hash加密。
鉴于这个sql文件是作为开发网站使用的sql,其中包含着网站相关的配置,一般开发者会直接使用默认账号密码进行配置。而不会是删除初始账号和密码
The text was updated successfully, but these errors were encountered:
所以默认的账号和密码可以正常登录后台账号
Sorry, something went wrong.
No branches or pull requests
任意文件上传导致的xss
根据经验和名字,这个类基本上就是一个通用类,统一作为文件上传功能的接口,如果能上传上去,可能会有执行权限的风险,在阅读了一部分的springboot的文档后发现如下
首先进入avatar函数,这个函数会接收名为file的数据并赋值到file中,文件类型是[MultipartFile](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/multipart/MultipartFile.html),是springboot接受文件内容的类。
**随后进入37行,这里对目标path进行了赋值,问题也出在这里。file.getOriginalFilename()获取到我们上传文件的全部名称。FileUtil.extName,获取到了我们上传文件的后缀。使用随机值作为名字。赋值给了path。这里后缀我们可控。**也是这个漏洞的核心点
接下来进入到处理文件的代码,38行。调用了OssStorageFactory.getStorageService()方法,我们进入这个方法中,简单判断下默认属性,进入到build()函数中,主要看build函数,点击跳进去。
前面先对config进行了赋值,同时对上传文件的属性进行了判断,支持云上传。如果没有配置,那么直接进入后面的else判断。上传文件到本地。
首先进入44行,创建一个ApplicationHome类,给config分别赋值Domain和UploadFolder。随后创建一个LocalStorageService类并返回。随后回到最开始的OssStorageFactory.getStorageService().upload(file.getInputStream(), path),这里的LocalStorageService是OssStorageFactory的实现类,进入LocalStorageService的upload方法,如下所示:
接收传过来的文件的流和path,23行对目标进行设置文件路径,以path结尾,这里path前面进行了名称重命名,所以无法进行目录穿越。但是文件这时已经传上去了,对后缀并未进行检测。随后返回数据。
至此,完成了文件上传,至于利用方式,当前只能传html,其他的不解析。
默认账号密码登录
去看安装文档就能知道,我们是直接下载sql数据库进行网站的安装的。根据官网提示,也是让我们直接创建一个数据库,随后导入这个sql文件,进行网站的搭建的。
这里会默认创建两个账号,一个是[email protected] , 另外一个是[email protected] 。其中[email protected]这个账号是管理员账号。这两个账号对应的密码为123456,12345678。均为hash加密。
鉴于这个sql文件是作为开发网站使用的sql,其中包含着网站相关的配置,一般开发者会直接使用默认账号密码进行配置。而不会是删除初始账号和密码
The text was updated successfully, but these errors were encountered: