exp:CVE-2024-2961将phpfilter任意文件读取提升为远程代码执行(RCE)

该exp来自于https://raw.githubusercontent.com/ambionics/cnext-exploits/main/cnext-exploit.py在原基础上添加了一个小改动,使其更加通用

 

修改后的exp顶部资源失效则https://www.123865.com/s/kN7jVv-uccLd

之前的命令行参数为

使用方式是python exp.py url command也就是不能指定post参数名

更改后如下

使用方式是python exp.py url command post reg
使用示例:

假如目标的php代码是这样

exp的使用姿势是


其中file1为post参数名字

abcd(.*)是一个正则表达式,为了匹配到echo打印在页面中的file_get_contents的返回值

下面解释一下为什么要添加这两个参数

关于这个的原理,我没看,不甚了解,只看了下怎么利用这个脚本

首先放出示例index.php文件的代码

在exp中发送post请求的地方在这里,也就是说这里只能接受post参数

这里是一一对应的

再说一下正则表达式参数reg,index.php中向页面响应了一个字符串,exp需要拿到$data才能进行下一步的操作,所以有了如下的正则表达式

显然这个表达式也不通用,所以我修改脚本,添加了reg参数,不过这个正则表达式就需要自己写了

另外一提,这个exp不是只适用于file_get_contents,file也是适用的,但是file读取文件读到的是一个数组,需要拼接为字符串

<?php    
$lines = file($_POST['file1']);
$contents = implode("", $lines);
echo "abcd".$contents;
python exp.py http://网址 "echo '<?php phpinfo();?>' > shell.php" file1 abcd(.*)

参考:https://www.ambionics.io/blog/iconv-cve-2024-2961-p1

参考:https://xz.aliyun.com/t/15549?time__1311=Gqjxn7itGQeWqGNDQiiQGkDuYHyy8YE80bD

参考:https://www.freebuf.com/articles/web/403508.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值