上传"定时任务"获取系统权限
原文来自 SecIN社区 —作者:tkswifty 相关背景 文件上传是系统中比较常见的业务需求,例如上传头像、简历、报表等。但是如果在业务实现过程中没有考虑相关的安全问题(例如没有对用户上传的文件类型做校验或者校验不充分,导致用户可以上传恶意脚本到服务器)便会导致相关的风险。 Java文件类File以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。 一般新建文件是通过将给定路径名字符串转换成抽象路径名来创建一个新File实例: File file = new File("path") 使用File创建文件时,若路径处path写入…/…/穿越符号,是可以跨目录新建文件的: 看一个例子,下面是通过引入…/…/穿越符进行跨目录在上级目录Desktop创建文件: 结合该特点,结合特定的利用场景可以完成相关的权限获取操作。例如: linux写入定时任务、ssh公钥 windows写入自启动脚本、恶意dll … 挖掘过程 一般针对文件上传业务,主要判断是否有检查后缀名,同时要查看配置文件是否有设置白名单或者黑名单,如果没有的话,那么攻击者利用该缺陷上传类似webshell等恶意文件。 目标系统主要是通过commons-fileupload组件来实现文件上传,具体实现如下: DiskFileItemFactory