漏洞介绍

Joomla!是一套全球知名的内容管理系统,是使用PHP语言加上MySQL数据库所开发的软件系统,可以在Linux、 Windows、MacOSX等各种不同的平台上执行。

Joomla! 2.5.0 - 3.9.22存在路径遍历漏洞。该漏洞源于mod_random_image的folder参数缺少输入验证。

漏洞范围

Joomla! 2.5.0 - 3.9.22

漏洞靶场

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
version: '3.8'

services:

joomla:
image: joomla:3.9.20
restart: always
ports:
- 8080:80
environment:
JOOMLA_DB_HOST: db
JOOMLA_DB_USER: joomla
JOOMLA_DB_PASSWORD: joomlapass
JOOMLA_DB_NAME: joomla_db
JOOMLA_SITE_NAME: Joomla
JOOMLA_ADMIN_USER: Joomla Hero
JOOMLA_ADMIN_USERNAME: joomla
JOOMLA_ADMIN_PASSWORD: joomla@secured
JOOMLA_ADMIN_EMAIL: 123@qq.com
volumes:
- joomla_data:/var/www/html
networks:
- joomla_network

db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: joomla_db
MYSQL_USER: joomla
MYSQL_PASSWORD: joomlapass
MYSQL_ROOT_PASSWORD: root
volumes:
- db_data:/var/lib/mysql
networks:
- joomla_network

volumes:
joomla_data:
db_data:

networks:
joomla_network:

docker-compose up -d后启动靶场

进行网站配置

image-20250105223243159

数据库配置

image-20250105223730688

其他默认后安装

删除installation目录

漏洞原理

对folder参数缺少输入验证

image-20250105225512598

modules/mod_random_image/mod_random_image.php#L16

漏洞复现

进入后台http://127.0.0.1:8080/administrator/,密码root/root

进入Extensions->Modules

image-20250105223915622

新建一个模块

image-20250105224027956

选择Random Image

image-20250105224114288

使用如下配置并保存

Image Folder选择哪个目录就会显示哪个目录下的php文件

image-20250105224228713

访问http://127.0.0.1:8080/

image-20250105224327942

可以看到有文件名泄露

image-20250105224942231

参考

[20201103] - Core - Path traversal in mod_random_image (joomla.org)

阿里云漏洞库 (aliyun.com)