phpcms v9文件上传漏洞复现

news/2024/11/25 16:28:22/

1.压缩包文件无递归删除

$file = $_FILES['file'];            #检查文件是否为空文件
if (!$file) {exit("请勿上传空文件");
}
$name = $file['name'];
$dir = 'upload/';
$ext = strtolower(substr(strrchr($name, '.'), 1));function check_dir($dir)        #检查文件格式
{$handle = opendir($dir);while (($f = readdir($handle)) !== false) {if (!in_array($f, array('.', '..'))) {$ext = strtolower(substr(strrchr($f, '.'), 1)); #将文件后缀名分割出来if (!in_array($ext, array('jpg', 'gif', 'png'))) {        #检查文件格式                unlink($dir . $f); }}}
}
// mkdir($dir);
if (!is_dir($dir)) {        #创建文件夹储存上传的文件mkdir($dir);
}$temp_dir = $dir . 'member/1/';
if (!is_dir($temp_dir)) {mkdir($temp_dir);
}if ($archive->extract(PCLZIP_OPT_PATH, $temp_dir, PCLZIP_OPT_REPLACE_NEWER) == 0) {check_dir($dir);exit("解压失败");}check_dir($temp_dir);exit('上传成功!');} else {move_uploaded_file($file['tmp_name'], $temp_dir . '/' . $file['name']);check_dir($temp_dir);exit('上传成功!');}
} else {exit('仅允许上传zip、jpg、gif、png文件!');
}

分析:当程序不递归删除时,我们直接将图片和.php文件压缩上传,会发现图片还在,.php文件被删除了

 

 可以看到我们的php文件已经被删除了

方法:我们发现它只是删除了压缩包里面的文件,但这段代码并不会对解压后的文件夹递归删除,只能对解压的文件直接删除

我们创建一个文件夹,放入以下文件,然后将这个文件经行压缩

 

此时,我们再将其上传,可以看到,我们的PHP文件就被保留下来了

 2.压缩包文件出现递归删除(时间竞争)

我们通过软件burp suite 抓包,修改一个变量,不停的发包,我们可以手动或者让软件不停的访问我们呢上传的PHP,如果显示出PHP内容,时间竞争成功

开启代理,选择上传的压缩包,

 

 将抓包打开

 设置一个变量

 设置发送的次数

然后手动不停的访问

3.


http://www.ppmy.cn/news/353561.html

相关文章

华为荣耀V9手机通过在Fastboot模式写ramdisk.img来获取ROOT权限 | 华为荣耀V9怎么获取ROOT权限 | 华为荣耀V9怎么用面具Magisk做ROOT权限

先把系统刷到8.0,然后参考华为荣耀9获取ROOT权限(文章链接:https://coco56.blog.csdn.net/article/details/127073267),教程虽然是针对荣耀9的,但荣耀V9实际测试也没问题,应该所有海思麒麟960的…

帆软 V9 Getshell 漏洞

0x00 任意文件上传漏洞【FineReport V9】 0x01 漏洞描述 此漏洞是任意文件覆盖,上传 JSP 马,需要找已存在的 JSP 文件进行覆盖,寻找Tomcat 启动帆软后默认存在的 JSP 文件 0x02 漏洞详情 POST /WebReport/ReportServer?opsvginit&cmd…

JLink v9 固件修复

文件下载地址(引用wyd的文件): https://gitee.com/wyd66666666/jlinkv9-repair接线 需要将坏的JLink拆开,用线将好的JLink和坏的JLink连起来 VTref -- VTref SWDIO -- TMS SWCLK -- TCK GND -- GND烧录方法 (1) 烧录一个…

工具 JLINK V9 自制

自制JLINK V9 测试可以使用 只是不能更新 感谢网友的分享~!具体的网址没有保存。在此基础上才能弄出自制的JLINKV9 原理图,PCB效果、材料清单如下:

php v9发布顺序,PHPCMS V9搜索按发布时间或ID排序显示的实现方法

这篇文章主要为大家详细介绍了PHPCMS V9搜索按发布时间或ID排序显示的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。 上一个关于phpcms,361源码给大家介绍了《phpcms v9搜索显示页第一页多出…

phpcms set inc.php,phpcms V9 sql注入漏洞测试

phpcms V9 版本存在SQL注入漏洞,漏洞复现如下 0x00 以GET方式访问如下链接,得到返回包里mvbpqw_siteid值: http://127.0.0.1/index.php?m=wap&c=index&a=init&siteid=1 0x01 构造SQL语句,将0x00中的mvbpqw_siteid值代入下面链接,以POST方式发起请求 0x02 将0x…

php v9验证码错误,phpcms v9 后台登陆地址 验证码错误等常见问题

PHPCMS v9网站更换域名怎么办? 网站在发展的过程中,很可能多次的修改域名。那么在PHPCMS V9中我们要怎么进行设置呢? 请进行以下步骤的修改:修改/caches/configs/system.php里面所有和域名有关的,把以前的老域名修改为…

php v9 邮件发送,phpcms V9表单向导之发送邮箱配置及邮件接收提醒内容设置攻略...

我们在使用phpcms V9表单向导接收用户提交信息时,phpcms默认的邮件提醒不包含用户数据,我们还有到后台查看,有点麻烦。今天就说下phpcms表单向导如何在后台配置发送邮箱和把详细内容发到指定邮箱。 发送邮箱配置 后台-设置-邮箱配置&#xff…