前言
在一次渗透测试发现系统存在任意文件读取的漏洞,也拿到了源代码,遇到了jar包环境拿shell的问题,记录着失败的过程。
弱口令
开局一个普通弱口令

image.png
页面显示404,看一下数据包貌似是jeeplus。
任意文件读取
存在历史漏洞任意文件读取

image.png
读一下history,下载一下源代码jar包

image.png
JAR审计
在FileController的upload方法处存在任意文件上传,但文件名不可控。

image.png
Target参数可控,可以指定任意的上传目录。经过了isAvailable方法判断。

image.png
Filetype 来源于allowedType
allowedType: file # 允许上传的文件类型, all, file ,image, audio, video, office
所以Filetype即为file,即var2为file。

image.png
这里fileExtensions来源于${userfiles.extensions.file}

image.png
然而这里的定义是空的。
所以upload上传filename只能是空值。

image.png
还好存在rename 方法,可以将上传的文件指定为任意名称。

image.png
尝试计划任务,上传一个反弹shell的内容。

image.png
将文件上传至根目录。

image.png
重命名到计划任务。
防火墙
发现并没有反弹shell,查看日志。

image.png
是SELINUX阻止了计划任务。

image.png
Selinux 状态为targeted。
问询AI结果为

image.png
只得放弃。
