前言
自己挖的第一个CVE~
喜提critical
这里简单说一下。
漏洞简介
GDidees CMS <= 3.9.1 的版本,存在一个任意文件上传漏洞。允许登录后的攻击者上传webshell获得网站的权限。
影响版本:
GDidees CMS <= 3.9.1 (其它的我没测。。)
漏洞复现 && 原理
先登录,然后选这个"文件交换"。(法语。。)
这里是可以上传文件的:
然后就是我觉得最离谱的一个点了,这里上传php后会显示后缀类型不对,但是并没有block。。。
为此我特意找了源码看了看,
下载cms源码http://gdidees.eu/userfiles/logiciels/cmsgdidees3.9.1.zip,
Burpsuite抓取上传时的请求包:
POST /_admin/index.php?fadmin=upload HTTP/1.1
找到对应代码处:
审计 control/upload_ressources.php代码
虽然前面做了黑名单判断,但是没有直接返回,所以还会走到34行的if处;
这个if语句第一部分就执行了move_uploaded_file,后续才进行了ext扩展名的判断,导致即使非法扩展名也能通过move_uploaded_file进行上传,进而导致了任意文件上传漏洞。
(抽象的代码逻辑😂)
返回后,点这个绿色的下载,就能访问webshell。
传命令即可执行:
参考
https://github.com/N0zoM1z0/Vuln-Search/blob/main/GdideesCMS.md
https://www.cve.org/CVERecord?id=CVE-2024-46101