该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